注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
PostgreSQLドキュメント↗ では、ウィンドウ関数を次のように定義しています。
ウィンドウ関数 は、現在の行に何らかの関連性がある一連のテーブル行を対象に計算を実行します。これは、集約関数で実行できるタイプの計算に似ています。ただし、通常の集約関数とは異なり、ウィンドウ関数の使用は、行が単一の出力行にグループ化されることはありません。行はそれぞれのアイデンティティを保持します。裏では、ウィンドウ関数はクエリ結果の現在の行だけでなく、より多くの行にアクセスできます。
このドキュメントでは、Contour の 式 で使用したいいくつかのウィンドウ関数の構文を説明します。ウィンドウ関数の背景情報については、次の追加リソースを参照してください。
最も基本的な形で、ウィンドウ関数は次のように分解できます。
<関数> OVER <あるウィンドウ>
ここで、関数 は、サポートされている集約関数 の1つであり、ウィンドウ はテーブル内の行のサブセットです。
ウィンドウを省略するには、()
を使用して、テーブル内のすべての行に対して関数を適用します。
次の例では、date
行の最大値を含むエントリをすべての行に追加します。
(出典: blog.jooq.org ↗)
したがって、売上記録があるテーブルがある場合、以下のようにして過去5つの売上の平均値を計算できます: これは、「カテゴリー」行によって行をパーティション分けし、各カテゴリー内の行を購入日でソートし、そのカテゴリーのすべてのアイテムのコストのランニングトータルを計算します。
次の例は、隕石着陸データセットを使用して自分で試すことができます。このデータセットは、NASA データポータル ↗経由で Meteoritical Society から提供されています。
この表現は、各クラスで最大の隕石を計算します: