構文
の説明に従います。gif
参照:
構文、セマンティクス、および制限については、expr
の有効な形式を含む”分析関数”目的
NTILE
は分析関数です。 順序付けられたデータセットをexpr
で示されるバケット数に分割し、各行に適切なバケット番号を割り当てます。 バケットには1からexpr
の番号が付けられています。 expr
の値は、各パーティションの正の定数に解決する必要があります。 Oracle Databaseでは整数が必要であり、expr
が整数以外の定数の場合、Oracleはその値を整数に切り捨てます。 戻り値はNUMBER
です。
バケット内の行数は、最大で1だけ異なる場合があります。 残りの値(行数の残りをバケットで割った値)は、バケット1から始まるバケットごとに1つずつ分散されます。
expr
が行数より大きい場合、行数に等しいバケット数が入力され、残りのバケットは空になります。
expr
にはNTILE
やその他の分析関数を使用することはできません。 つまり、分析関数を入れ子にすることはできませんが、expr
には他の組み込み関数式を使用できます。
関連項目:
“SQL式について”expr
の有効な形式および表2-10″暗黙の型変換行列”暗黙の変換の詳細については
例
次の例では、Department100のoe.employees
表のsalary
列の値を4つのバケッ この部門のsalary
列には6つの値があるため、2つの余分な値(6/4の残りの値)がバケット1と2に割り当てられ、バケット3または4よりも1つ多くの値
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