SQL において、窓関数(まどかんすう)もしくはウィンドウ関数 (ウィンドウかんすう、: window function) は、結果セットを部分的に切り出した領域に集約関数を適用できる拡張された SELECT ステートメントである。SQL:2003 以降の標準SQLで規定されている。分析関数やOLAP機能と呼ばれる場合もある。

以下の例は、同じ city ごとに、その人口を集計している。

sum(population) OVER ( PARTITION BY city )

集約を行う領域は OVER 句により制御できる。 以下の構文を持ち、結果セットの分割と順序を制御できる。 ORDER BY句は row_number 関数のような順序の影響を受ける処理に対して使用する。

<OVER_CLAUSE> :: =
   OVER ( [ PARTITION BY <expr>, ... ]
          [ ORDER BY <expression> ] )

外部リンク 編集