メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

ウィンドウ関数

ウィンドウ関数は、より効率的に分析業務クエリを作成する機能をアプリケーション開発者に提供します。ウィンドウ関数はパーティションまたは結果セットの「ウィンドウ」で演算し、ウィンドウのすべての行に値を返します。それに対して、ウィンドウ関数以外は結果セットのすべての行について計算を実行します。結果の行を集計するグループ関数とは異なり、テーブル式のすべての行が保持されます。

戻り値はこのウィンドウの行セットの値を利用して計算されます。ウィンドウはテーブルの各行に、追加の属性を計算するために使用する行のセットを定義します。ウィンドウはウィンドウ仕様 (OVER 句) を使用して定義され、次の 3 つの主要な概念に基づいています。

  • ウィンドウのパーティション、列のグループを形成 (PARTITION 句)

  • ウィンドウの並び順、各パーティション内の行の順序またはシーケンスの定義 (ORDER BY 句)

  • ウィンドウのフレーム、各行に関連して定義され、行のセットをさらに制限 (ROWS 仕様)

ウィンドウ関数は、最後の ORDER BY 句を除いて、クエリで実行される最後の演算のセットです。すべての結合およびすべての WHERE、GROUP BY、および HAVING 句は、ウィンドウ関数が処理される前に完了されます。そのため、ウィンドウ関数は選択リストまたは ORDER BY 句のみに表示できます。複数のウィンドウ関数は、別のフレーム句を持つ 1 つのクエリ内で使用できます。ウィンドウ関数は、CASE などの他のスカラー式に存在する場合があります。

Amazon Redshift は、集計とランク付けという 2 つのタイプのウィンドウ関数をサポートします。

サポートされる集計関数は次のとおりです。

  • AVG

  • COUNT

  • CUME_DIST

  • FIRST_VALUE

  • LAG

  • LAST_VALUE

  • LEAD

  • MAX

  • MEDIAN

  • MIN

  • NTH_VALUE

  • PERCENTILE_CONT

  • PERCENTILE_DISC

  • RATIO_TO_REPORT

  • STDDEV_POP

  • STDDEV_SAMP (STDDEV のシノニム)

  • SUM

  • VAR_POP

  • VAR_SAMP (VARIANCE のシノニム)

サポートされるランク付け関数は次のとおりです。

  • DENSE_RANK

  • NTILE

  • PERCENT_RANK

  • RANK

  • ROW_NUMBER