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
)