składnia
opis ilustracji ntile.gif
Zobacz także:
„funkcje analityczne” aby uzyskać informacje na temat składni, semantyki i ograniczeń, w tym ważnych form expr
cel
NTILE
jest funkcją analityczną. Dzieli uporządkowany zestaw danych na liczbę kubełków wskazaną przez expr
i przypisuje odpowiednią liczbę kubełków do każdego wiersza. Wiadra są ponumerowane od 1 do expr
. Wartość expr
musi uzyskać dodatnią stałą dla każdej partycji. Oracle Database oczekuje liczby całkowitej, a jeśli expr
jest stałą nieintegrową, to Oracle przycina tę wartość do liczby całkowitej. Zwracana wartość to NUMBER
.
liczba wierszy w wiadrach może różnić się co najwyżej o 1. Pozostałe wartości (reszta liczby wierszy podzielona przez wiadra) są rozdzielane po jednym dla każdego wiadra, zaczynając od wiadra 1.
jeśli expr
jest większa niż liczba wierszy, to liczba wiader równa liczbie wierszy zostanie wypełniona, a pozostałe wiader będą puste.
nie można używać NTILE
ani żadnej innej funkcji analitycznej dla expr
. Oznacza to, że nie można zagnieżdżać funkcji analitycznych, ale można użyć innych wbudowanych wyrażeń funkcyjnych dla expr
.
Zobacz także:
„About SQL Expressions” aby uzyskać informacje na temat prawidłowych form expr
i tabeli 2-10, „Implicit Type Conversion Matrix” aby uzyskać więcej informacji na temat implicit conversion
przykłady
poniższy przykład dzieli na 4 wiadra wartości w kolumnie salary
tabeli oe.employees
z działu 100. Kolumna salary
ma 6 wartości w tym dziale, więc dwie dodatkowe wartości (Reszta z 6 / 4) są przydzielane do bucketów 1 i 2, które mają o jedną więcej wartości niż buckety 3 lub 4.
SELECT last_name, salary, NTILE(4) OVER (ORDER BY salary DESC) AS quartile FROM employees WHERE department_id = 100;LAST_NAME SALARY QUARTILE------------------------- ---------- ----------Greenberg 12000 1Faviet 9000 1Chen 8200 2Urman 7800 2Sciarra 7700 3Popp 6900 4