Ö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
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 SorgusuSELECT marka FROM tblUrunler GROUP BY marka
Kategoriler
Her bir markaya ait kaç tane ürün var?
SQL SorgusuSELECT marka, COUNT(id) AS [Toplam Ürün] FROM tblUrunler GROUP BY markaMarkaya Ait Ürün Sayısı
Her bir kategoriye ait kaç tane ürün var?
SQL SorgusuSELECT kategori, COUNT(id) AS [Toplam Ürün] FROM tblUrunler GROUP BY kategoriKategoriye Ait Ürün Sayısı
Ürün Sayısı 2'den Fazla Markaları Bulalım
SQL SorgusuSELECT marka, COUNT(id) AS [Toplam Ürün] FROM tblUrunler GROUP BY marka HAVING COUNT(id) > 2Ürün Sayısı 2'den Fazla Markalar
Her bir kategoride kaç tane marka var?
SQL SorgusuSELECT kategori, COUNT(DISTINCT marka) AS [Toplam Marka] FROM tblUrunler GROUP BY kategori