翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
NTILE ウィンドウ関数
NTILE ウィンドウ関数は、パーティションの順序付けされた行を可能な限り同じサイズの指定されたランク付けグループの数に分割し、任意の行を分類するグループを返します。
構文
NTILE (expr) OVER ( [ PARTITION BY expression_list ] [ ORDER BY order_list ] )
引数
- expr
-
ランク付けグループの数。パーティションごとに正の整数値 (0 より大きい) になる必要があります。expr 引数は Null を使用することはできません。
- OVER
-
ウィンドウのパーティションと順序を指定する句。OVER 句にウィンドウフレーム仕様を含めることはできません。
- PARTITION BY window_partition
-
省略可能。OVER 句のグループごとのレコードの範囲。
- ORDER BY window_ordering
-
省略可能。各パーティション内の行をソートする式。ORDER BY 句を省略した場合、ランク付けの動作は同じです。
ORDER BY で一意のソートが行われない場合、行の順序は不確定になります。詳細については、「ウィンドウ関数用データの一意の並び順」を参照してください。
戻り型
BIGINT
例
次の例は、2008 年 8 月 26 日に Hamlet のチケットに支払った価格を 4 つのランクグループにランク付けします。結果セットは 17 行であり、1 位から 4 位のランク付けにほぼ均等に分割されます。
select eventname, caldate, pricepaid, ntile(4) over(order by pricepaid desc) from sales, event, date where sales.eventid=event.eventid and event.dateid=date.dateid and eventname='Hamlet' and caldate='2008-08-26' order by 4; eventname | caldate | pricepaid | ntile -----------+------------+-----------+------- Hamlet | 2008-08-26 | 1883.00 | 1 Hamlet | 2008-08-26 | 1065.00 | 1 Hamlet | 2008-08-26 | 589.00 | 1 Hamlet | 2008-08-26 | 530.00 | 1 Hamlet | 2008-08-26 | 472.00 | 1 Hamlet | 2008-08-26 | 460.00 | 2 Hamlet | 2008-08-26 | 355.00 | 2 Hamlet | 2008-08-26 | 334.00 | 2 Hamlet | 2008-08-26 | 296.00 | 2 Hamlet | 2008-08-26 | 230.00 | 3 Hamlet | 2008-08-26 | 216.00 | 3 Hamlet | 2008-08-26 | 212.00 | 3 Hamlet | 2008-08-26 | 106.00 | 3 Hamlet | 2008-08-26 | 100.00 | 4 Hamlet | 2008-08-26 | 94.00 | 4 Hamlet | 2008-08-26 | 53.00 | 4 Hamlet | 2008-08-26 | 25.00 | 4 (17 rows)