Anasayfa / Yazılım / SQL / NTILE Fonksiyonu

NTILE Fonksiyonu

Diğer sıralama fonksiyonlarında her bir listelenen veri satırına numara verilirken NTILE fonksiyonu ile satır gruplarına değer atayabilme imkanımız mevcuttur. Bir örnekle konumuzu açıklayıp bitirelim.

SELECT SalesPersonID,SUM(TotalDue) AS TotalSales,
NTILE(10) OVER(ORDER BY SUM(TotalDue)) * 10000/COUNT(*) OVER() AS Bonus
FROM Sales.SalesOrderHeader
WHERE SalesPersonID IS NOT NULL
AND OrderDate BETWEEN '1/1/2005' AND '12/31/2005'
GROUP BY SalesPersonID
ORDER BY TotalSales

2013021103

Sorgumuzu açıklayayım. Sales.SalesOrderHeader tablosundan 2005 için SalesPersonID değerlerini toplam satışlarına göre gruplandırarak listeleme yapıyoruz. NTILE fonksiyonu ile satırları 10 gruba böldük. Burada baz alınan 10 grup durumu tabi her satış personeli için yani her SalesPersonID için satışlarına göre yani toplam satışlarına göre bölme kuralına dayanıyor. Sorgumuzda Bonus değerini bulmak için NTILE ile ifade edilen değeri 10 000 ile çarpıyoruz ve daha sonra bunu satır sayısına bölüyoruz böylelikle bonus miktarını buluyoruz. Sorgu sonuçlarınsa satır sayısını belirlemek için COUNT(*) OVER() fonksiyonlarını kullanıyoruz.

Bir sonraki yazıda görüşmek üzere..

Bir cevap yazın

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