応用情報暗記無料で始める

ウィンドウ関数(OVER句)とは?うぃんどうかんすう

ウィンドウ関数(OVER句)とは、集計しても明細行を残したまま、各行へ順位や集計値を添えられるSQLの機能。どの範囲を集計の対象にするかはOVER句で指定し、PARTITION BYで区切ってORDER BYで順序を与える。GROUP BYのように行が潰れないため、明細と集計を一つの結果として同時に返せるのが使いどころになる。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では1問の解説で触れられています。

応用情報技術者試験の頻出用語/テクノロジ系

別名:ウィンドウ関数、OVER句、RANK/ROW_NUMBER/DENSE_RANK

この語が出る過去問を解く →

背景

GROUP BYによる集計は、まとめた瞬間に明細行が消えてしまう。そのため「各明細に、その部署内での順位を添えて出す」といった要求は、同じ表をもう一度結合して数え上げるという遠回りで書くしかなかった。読みにくいうえ、データ量が増えると性能も出ない。集計の範囲を行ごとに指定できるようにして、この遠回りを言語の側で不要にしたのがウィンドウ関数である。

具体例

部署ごとの売上順位はRANK() OVER(PARTITION BY 部署 ORDER BY 売上 DESC)で得られる。日付順の累計はSUM(売上) OVER(ORDER BY 日付 ROWS UNBOUNDED PRECEDING)と書く。GROUP BYと違って明細行が残るので、明細と集計を一つの結果として同時に返せる。

試験での引っ掛け

順位付け関数の使い分けが定番の出題点で、RANKは同順位の次の番号を飛ばし、DENSE_RANKは飛ばさず、ROW_NUMBERは同値でも通し番号を振る。またウィンドウ関数はWHERE句には書けない。評価の順序としてWHEREのほうが先に処理されるためで、順位で絞り込むなら副問合せで包んで外側から条件を付ける必要がある。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 1問の解説で触れられる
  • 分野:テクノロジ系
  • 順位付け関数の使い分けが定番の出題点で、RANKは同順位の次の番号を飛ばし、DENSE_RANKは飛ばさず、ROW_NUMBERは同値でも通し番号を振る。