SQL Group By

Group by komutu tablodaki verileri istenilen bir veya birden çok alana göre gruplandırmak için kullanır.

SQL Group By

SQL Group By

Group by komutu tablodaki verileri istenilen bir veya birden çok alana göre gruplandırmak için kullanır. Select komutu ile beraber kullanır.

Kullanım Şekli:

Select Listelenecek_alanlar, fonksiyonlar from Tablo_adı
Where şart veya şartlar
Group by Gruplandırılacak_alanlar

Not: Group by en çok fonksiyonlarla(max, min, avg, count, sum) beraber kullanılır. Fonkisiyonlar kullanılmak zorunda değildir. Group by da "Listelenecek alanlar", "Gruplandırılıcak alanlar" içinde olmak zorundadır. Gruplandırılıcak alanların hepsi listelenmek zorunda değildir.

Örnek:

Satis Tablosu

Her ürünün toplam satış miktarını listeleyelim.

SELECT
  urun,
  SUM(miktar) AS [Toplam Satış Miktarı]
FROM Satis
GROUP BY urun

Örnek 2:

Her ürünün günlük toplam satış miktarını listeleyelim.

SELECT
  urun,
  tarih,
  SUM(miktar) AS [Toplam Satış Miktarı]
FROM Satis
GROUP BY urun,
         tarih

Örnek 3:

Her ürünün 2020 Nisan ayındaki toplam satış miktarını bulalım.

Çözüm 1:

SELECT
  urun,
  SUM(miktar) AS [Toplam Satış Miktarı]
FROM Satis
WHERE tarih >= '2020/04/01'
AND tarih <= '2020/04/30'
GROUP BY urun

Çözüm 2:

SELECT
  urun,
  SUM(miktar) AS [Toplam Satış Miktarı]
FROM Satis
WHERE tarih BETWEEN '2020/04/01' AND '2020/04/30'
GROUP BY urun

Örnek 4:

Ürünlerin en yüksek satış fiyatını, en düşük satış fiyatını ve fiyatların ortalamasını listeleyelim.

SELECT
  urun,
  MAX(fiyat),
  MIN(fiyat),
  AVG(fiyat)
FROM Satis
GROUP BY urun

Örnek 5:

Her müşteriye yapılan satışların toplam tutarını bulalım.

SELECT
  musteri_adi,
  SUM(miktar * fiyat) AS toplamtutar
FROM Satis
GROUP BY musteri_adi

Örnek 6:

Her müşterinin günlük toplam satış miktarını listeleyelim.

SELECT
  musteri_adi,
  tarih,
  SUM(miktar * fiyat)
FROM Satis
GROUP BY musteri_adi,
         tarih

Örnek 7:

A harfi başlayan müşterilerin aldığı her ürünün ortalama fiyatını listeleyelim.

SELECT
  urun,
  AVG(fiyat)
FROM Satis
WHERE musteri_adi LIKE 'a%'
GROUP BY urun

Örnek 8:

Toplam satış miktarını listeleyelim.

SELECT
  SUM(miktar) AS toplammiktar
FROM Satis

Örnek 9:

Her müşterinin aldığı ürünlerin sayısı bulalım.

SELECT
  musteri_adi,
  COUNT(*)
FROM Satis
GROUP BY musteri_adi

Tepkiniz Nedir?

like

dislike

love

funny

angry

sad

wow