Grouping: Bir tablo içerisinde belirlediğimiz bir kolona veya kolonların varyasyonuna göre kümeleme yapar.Bu sayede kümelenmiş grup içerisinde aggregate fonksiyonları kullanılabilir.Fiyata göre gruplayıp görüntülemek istediğimizde group by deyimi kullanılır.
Distinct deyiminin işini yapmaktadır ancak fark aggregate fonksiyonları ile oluşturulan grupları işler.
Aggregate functions -> Belirli bir kümeye uygulanacak işlemleri içerir.
Sum -> verilen küme içinde verilen kolondaki sayısal değerleri toplar.
Count-> verilen küme içinde belirtilen kolondaki elemanları sayar.Null değer dışında bir değer var ise onu sayar.
Fiyatı 18 olan ürünleri gruplayıp bu gruba ait adeti,stoktaki sayıyı toplayıp gösterir:
select p.UnitPrice, COUNT(p.UnitPrice) as [Count], SUM(UnitsInStock) as [Sum] from Products as p group by p.UnitPrice select distinct p.UnitPrice from Products as p
Product id sine göre gruplayarak bu gruptan elde edilen satıs tutarını getirmek için:
select o.ProductID, SUM(o.UnitPrice*o.Quantity) as [Satis Tutari] from [Order Details] as o group by o.ProductID order by o.ProductID asc
Hangi kategoride kaç adet ürün olduğunu raporlayınız:
select p.CategoryID, COUNT(p.CategoryID) as [Count] from Products as p group by p.CategoryID
Hangi Tedarikçiden kaç dolarlık ürün satın alınmıştır:
select p.SupplierID, SUM(p.UnitsInStock*p.UnitPrice) from Products as p group by p.SupplierID
Max -> Bir küme içerisinden verilen kolonda max değeri getirir.
Her tedarikçinin en pahalı ürünleri kaç dolardır?
select p.SupplierID, MAX(p.UnitPrice) from Products as p group by p.SupplierID
Min -> verilen küme içerisinde istenilen kolonun en küçük değerini verir.
Müşterilerin ilk siparişlerini ne zaman verdiklerini listeleyiniz:
select o.CustomerID, MIN(o.OrderDate) from Orders as o group by o.CustomerID
AVG -> verilen küme içerisinde istenilen kolonun ortalama değerini verir.
Her üründen ortalama kaç dolarlık satış yapılmıştır raporlayınız:
select od.ProductID, AVG(od.Quantity*od.UnitPrice) from [Order Details] as od group by od.ProductID
Bir sonraki dersimiz alt sorgularda görüşmek üzere kendinize iyi bakınız =)