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 |
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 |
Ö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 |
İçerik: Yusuf Erdoğan