syntaxe
popis ilustrace ntile.gif
Viz Také:
„Analytické Funkce“ pro informace o syntaxi, sémantiku, a omezení, včetně platné formy expr
Účel
NTILE
analytické funkce. Rozděluje uspořádanou datovou sadu na počet kbelíků označených expr
a každému řádku přiřadí příslušné číslo kbelíku. Kbelíky jsou číslovány 1 až expr
. Hodnota expr
musí být pro každý oddíl nastavena na kladnou konstantu. Oracle Database očekává celé číslo, a pokud expr
je noninteger konstanta, pak Oracle zkrátí hodnotu na celé číslo. Návratová hodnota je NUMBER
.
počet řádků ve kbelících se může lišit nejvýše o 1. Zbývající hodnoty (zbytek počtu řádků dělených kbelíky) jsou rozděleny jeden pro každý kbelík, počínaje kbelíkem 1.
pokud je expr
větší než počet řádků, vyplní se počet kbelíků rovných počtu řádků a zbývající kbelíky budou prázdné.
pro expr
nelze použít NTILE
ani jinou analytickou funkci. To znamená, že nemůžete vnořit analytické funkce, ale můžete použít jiné vestavěné funkční výrazy pro expr
.
Viz Také:
„O SQL Výrazy“ pro informace o platné formy expr
a Tabulka 2-10, „Implicitní Typové Konverze Matrix“ pro více informací o implicitní konverze
Příklady
následující příklad rozdělí do 4 kbelíky hodnoty v salary
sloupec oe.employees
tabulka z Oddělení 100. salary
sloupec má 6 hodnot v tomto oddělení, tak na další dvě hodnoty (zbytek 6 / 4) jsou přiděleny kbelíky 1 a 2, které tedy mají jeden větší hodnotu než kbelíky 3 nebo 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