Warning

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

ウィンドウ関数

PostgreSQLドキュメント↗ では、ウィンドウ関数を次のように定義しています。

ウィンドウ関数 は、現在の行に何らかの関連性がある一連のテーブル行を対象に計算を実行します。これは、集約関数で実行できるタイプの計算に似ています。ただし、通常の集約関数とは異なり、ウィンドウ関数の使用は、行が単一の出力行にグループ化されることはありません。行はそれぞれのアイデンティティを保持します。裏では、ウィンドウ関数はクエリ結果の現在の行だけでなく、より多くの行にアクセスできます。

このドキュメントでは、Contour の で使用したいいくつかのウィンドウ関数の構文を説明します。ウィンドウ関数の背景情報については、次の追加リソースを参照してください。

基本構文

最も基本的な形で、ウィンドウ関数は次のように分解できます。

<関数> OVER <あるウィンドウ>

ここで、関数 は、サポートされている集約関数 の1つであり、ウィンドウ はテーブル内の行のサブセットです。

ウィンドウを省略するには、() を使用して、テーブル内のすべての行に対して関数を適用します。

次の例では、date 行の最大値を含むエントリをすべての行に追加します。 (出典: blog.jooq.org ↗)

したがって、売上記録があるテーブルがある場合、以下のようにして過去5つの売上の平均値を計算できます: これは、「カテゴリー」行によって行をパーティション分けし、各カテゴリー内の行を購入日でソートし、そのカテゴリーのすべてのアイテムのコストのランニングトータルを計算します。

隕石データを用いた例

次の例は、隕石着陸データセットを使用して自分で試すことができます。このデータセットは、NASA データポータル ↗経由で Meteoritical Society から提供されています。

この表現は、各クラスで最大の隕石を計算します: