SQL'de Group By Kavramı
-
Bir sütun değerine karşılık 1'den fazla karşılık gelen sütunların gruplanması ile ile ilgili makalemiz.
Diyelimki elinizde bir ürün sistemi var (Bilgisayar, televizyon, beyaz eşya vs..). Bu sistemde raporlar almak istiyorsunuz. Mesela, "Televizyon kategorisinde kaç tane marka var?", "LG markalı kaç tane televizyon mevcut?" yada "Her bir kategoride kaç tane ürün mevcut?" gibi soruların karşılığı olarak GROUP BY ifadesi ile bu soruların cevaplarını bulmaya çalışalım.
Öncelikle, çok ayrıntıya girmeden basit bir tablo oluşturalım. Kategori, marka ve ürünün aynı tabloda yer aldığı bir tablo.Ürünler Tablosu
CREATE Table tblUrunler ( id INT PRIMARY KEY IDENTITY, kategori NVARCHAR(50), marka NVARCHAR(50), urun_adi NVARCHAR(50) )
İçerisine biraz kayıtlar ekleyelim
Tablonun özetini çıkarırsak
- "Televizyon" ve "Notebook" olmak üzere toplamda 2 kategori mevcuttur.
- "LG", "Samsung", "Sharp", "Sony", "Panasonic", "ASUS" ve "HP" olmak üzere toplamda 7 marka mevcuttur.
- Toplamda ise 13 ürün mevcuttur.Her bir markaya ait kaç tane ürün var?
SELECT marka, COUNT(id) AS [Toplam Ürün] FROM tblUrunler GROUP BY marka

Her bir kategoriye ait kaç tane ürün var?
SELECT kategori, COUNT(id) AS [Toplam Ürün] FROM tblUrunler GROUP BY kategori

Ürün Sayısı 2'den Fazla Markaları Bulalım
SELECT marka, COUNT(id) AS [Toplam Ürün] FROM tblUrunler GROUP BY marka HAVING COUNT(id) > 2

Bol veritabanlı günler :)
Kaynak: http://www.ontedi.com/sql/sqlde-group-by-kavrami
-
teşekkürler. lazım oluyor bu tarz bilgiler.
-
teşekkürler hocam güzel paylaşım olmuş
