SEO (Arama Motoru Optimizasyonu) Mikro İnteraktif ÜCRETSİZ - Google Play'den İndirin

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 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
Ürünler Tablosu Verileri
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Televizyon', 'LG', '22" LG22 Televizyon')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Televizyon', 'LG', '24" LG24 Televizyon')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Televizyon', 'LG', '32" LG32 Televizyon')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Televizyon', 'Samsung', '46" SMG46 Televizyon')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Televizyon', 'Sharp', '55" SRP55 Televizyon')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Televizyon', 'Sharp', '40" SRP40 Televizyon')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Televizyon', 'Sony', '42" SNY42 Televizyon')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Televizyon', 'Panasonic', '36" PNS36 Plazma Televizyon')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Televizyon', 'Panasonic', '39" PNS39 OLED Televizyon')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Notebook', 'ASUS', 'i7 AS Notebook')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Notebook', 'ASUS', 'i5 AS Notebook')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Notebook', 'HP', 'i7 HP Notebook')
INSERT INTO tblUrunler (kategori, marka, urun_adi) VALUES ('Notebook', 'HP', 'i5 HP Notebook')

Eklenen Kayıtlar
SQL'de Group By Kavramı

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.


Görüldüğü gibi tekrar eden markalar var. Peki tekrarsız bir şekilde markaları nasıl listeleriz?

Markaları Listeleyelim.

SQL Sorgusu
SELECT
marka
FROM
tblUrunler
GROUP BY marka

Kategoriler
SQL'de Group By Kavramı

Her bir markaya ait kaç tane ürün var?

SQL Sorgusu
SELECT
marka, COUNT(id) AS [Toplam Ürün]
FROM
tblUrunler
GROUP BY marka
Markaya Ait Ürün Sayısı
SQL'de Group By Kavramı

Her bir kategoriye ait kaç tane ürün var?

SQL Sorgusu
SELECT
kategori, COUNT(id) AS [Toplam Ürün]
FROM
tblUrunler
GROUP BY kategori
Kategoriye Ait Ürün Sayısı
SQL'de Group By Kavramı

Ürün Sayısı 2'den Fazla Markaları Bulalım

SQL Sorgusu
SELECT
marka, COUNT(id) AS [Toplam Ürün]
FROM
tblUrunler
GROUP BY marka
HAVING COUNT(id) > 2
Ürün Sayısı 2'den Fazla Markalar
SQL'de Group By Kavramı

Her bir kategoride kaç tane marka var?

SQL Sorgusu
SELECT
kategori, COUNT(DISTINCT marka) AS [Toplam Marka]
FROM
tblUrunler
GROUP BY kategori
Örnek
SQL'de Group By Kavramı

Yorumlar

Yorum Yaz

Avatar

REKLAM

DDos Koruma, Botnet Koruma, Layer 7 Saldırı koruması, Sanal sunucu, Vds sunucu

REKLAM

Çizgi Filmler

REKLAM

Çocuk Etkinlikleri Uygulaması

EN

  • Popüler
  • Yeni
  • Son Yorum