GroupBy

Northwind database devam

-- çalışanların ID değerlerini ve o çalışanın toplamda aldığı sipariş sayısını hesaplayın...
select EmployeeID,
COUNT(OrderID) as 'Aldığı Sipariş Sayısı'
from Orders
group by EmployeeID

-- her müşterinin ID değerlerini ve verdikleri sipariş sayılarını listeleyin
-- Orders siparişler tablosu
-- CustomerID müşteri ID değeri
select CustomerID,COUNT(OrderID)
from Orders
group by CustomerID

-- Her siparişte toplamda ne kadar para kazanmışız?
select OrderID, SUM(UnitPrice*Quantity)
from [Order Details]
group by OrderID

-- her ürünün ID değerini ve bu ürünlerin satışlarından ne kadar para kazandığımızı listeleyin
select ProductID, SUM(UnitPrice*Quantity)
from [Order Details]
group by ProductID

-- her kategoride toplam kaç ürün var?
-- CategoryID ve ürün sayısı kolonları
-- Products tablosu
select CategoryID,COUNT(ProductID)
from Products
group by CategoryID

-- ürün sayısı 10 dan fazla olan kategorilerin ID değerlerini ve ürün sayılarını listeleyin
-- having => group by ın "where" dir.
select CategoryID,COUNT(ProductID)
from Products
group by CategoryID
having COUNT(ProductID)>10

/*select kolonlar
  from tablolar
  where şartlar
  group by kolonlar
  having sartlar
  order by kolonlar
*/

-- toplam satılan miktarı adet bazlı olarak 50 den fazla olan ürünlerin ID değerlerini ve satılan miktarlarını listeleyin
select ProductID,SUM(Quantity)
from [Order Details]
group by ProductID
having SUM(Quantity)>50

-- Birim fiyatı 15 den fazla olan ürünler arasında toplam kazandırdığı para 2000 den büyük olan ürünlerin ID değerlerini ve kazandırdıkları miktarı listeleyin
-- [Order Details] tablosu
-- UnitPrice => birim fiyat
-- Quantity => miktar
select ProductID,SUM(UnitPrice*Quantity)
from [Order Details]
where UnitPrice>15
group by ProductID
having SUM(UnitPrice*Quantity)>2000

-- en fazla sipariş veren müşterilerin ID değerlerini ve sipariş sayılarını listeleyin
select CustomerID,COUNT(OrderID)
from Orders
group by CustomerID
having COUNT(OrderID)=
(
    select MAX(Deger) from
    (
       select COUNT(OrderID) as Deger
       from Orders
       group by CustomerID
    )as t
)

-- en fazla ürüne sahip kategorilerin ID değerleri ve içerdikleri ürün sayılarını listeleyin
-- products tablosu
select CategoryID,COUNT(ProductID)
from Products
group by CategoryID
having COUNT(ProductID)=
(
    select MAX(Deger) from
    (
       select COUNT(ProductID) as Deger
       from Products
       group by CategoryID
    )as t
)