SQL GROUP BY Nedir? Kullanımı Nasıldır? Örneklerle Anlatım
29.01.2021 17:02 28.917 Görüntülendi

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

 

İçerik: Yusuf Erdoğan