SQL GROUP BY Nedir? Kullanımı Nasıldır? Örneklerle Anlatım
SQL GROUP BY komutu aynı değerlere sahip verileri gruplamamızı sağlar. GROUP komutu verileri bir veya daha fazla sütunla gruplamak için toplama işlevleri kullanır.(COUNT, MAX, MIN, SUM, AVG)
SELECT sütun_adı(s)
FROM tablo_adı
WHERE koşul
GROUP BY sütun_adı(s)
ORDER BY sütun_adı (s);
NOT: Yukarıda anlaşılır olması için türkçe karakter kullanılmıştır.Kod yazımlarında Türkçe karakter kullanmayınız.
Örnek veritabanı üzerinde deneyelim.
KullaniciID |
Ad |
Soyad |
Adres |
Sehir |
Postakodu |
Ulke |
1 |
Safa |
Dedeoğlu |
Necmettin Erbakan Cad. no 8/1 |
İstanbul |
34000 |
Türkiye |
2 |
Fatih |
Turab |
İskele Cad. hastane sok. |
Artvin |
08300 |
Türkiye |
3 |
John |
Doupoint |
Claremont Rd no:8/3 |
Newcastle |
NE2 4AA |
İngiltere |
4 |
Gustavo |
Alfaro |
Cuero y Caicedo, Quito |
New York |
170129 |
Amerika |
5 |
Abel |
Gigli |
Dagmada Waaberi 324/5 |
Moskova |
Jh09010 |
Rusya |
SQL GROUP BY ÖRNEKLERİ
Aşağıdaki SQL komutu hangi ülkede kaç müşteri olduğunu gösterir.
SELECT COUNT(KullaniciID), Ulke
FROM Musteriler
GROUP BY Ulke;
Sonuç çıktısı:
SAYI(KullaniciID) |
Ulke |
1 |
Amerika |
1 |
İngiltere |
1 |
Rusya |
2 |
Türkiye |
Aşağıdaki SQL komutu, hangi ülkede kaç müşteri olduğunu çoktan aza doğru sıralar.
SELECT COUNT(KullaniciID), Ulke
FROM Musteriler
GROUP BY Ulke
ORDER BY COUNT(KullaniciID) DESC;
Sonuç çıktısı:
SAYI(KullaniciID) |
Ulke |
2 |
Türkiye |
1 |
İngiltere |
1 |
Rusya |
1 |
Amerika |
SQL GROUP BY ve JOIN birlikte kullanımı
Örnek veritabanı üzerinden örnekle açıklayalım.
SiparisID |
KullaniciID |
CalisanID |
SiparisTarihi |
TedarikciID |
12312 |
2 |
5 |
7/1/2021 |
2 |
12342 |
5 |
7 |
12/1/2021 |
1 |
12354 |
8 |
2 |
15/1/2021 |
2 |
12398 |
4 |
3 |
19/1/2021 |
3 |
12456 |
6 |
9 |
23/1/2021 |
1 |
TedarikciID |
TedarikciAdi |
1 |
MY Express |
2 |
DHL |
3 |
YK |
Aşağıdaki SQL komutu, hangi tedarikçinin kaç defa kullanıldığını listeler.
SELECT Tedarikciler.TedarikciAdi, COUNT(Siparisler.SiparisID) AS SiparisSayısı
FROM Siparisler
LEFT JOIN Tedarikciler ON Siparisler.TedarikciID = Tedarikciler.TedarikciID
GROUP BY TedarikciAdi;
Sonuç çıktısı:
TedarikciAdi |
SiparisSayısı |
MY Express |
2 |
DHL |
2 |
YK |
1 |