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