[T-Sql] Group by ifadesi

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 =)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir