First_Value 関数と Last_Value 関数。
スポンサーリンク
初めて使った。
並べ替えた後のレコード群から m 件から n 件までのレコードを取得するために、副問い合わせの中で使った。
以下、Oracle のページから引用:
select
ID,
SortKey,
First_Value(Val) over(partition by ID order by SortKey) as FirVal,
Val,
Last_Value(Val) over(partition by ID order by SortKey Rows between Unbounded Preceding and Unbounded Following) as LastVal
from FirstLastSample;
"partition by"は省略可能である。
"Rows between Unbounded Preceding and Unbounded Following"という一見おまじないのようなコードを入れないと余り意味がない結果になる。
参考資料:
- 図でイメージするOracle DatabaseのSQL全集 第3回 分析関数 (←分かりやすい)
- ORACLE/オラクルSQLリファレンス(分析関数:FIRST_VALUE)
- ORACLE/オラクルSQLリファレンス(分析関数:LAST_VALUE)
- SQL 問い合わせ - スカラー副問い合わせ、cursor、row_number、over、with - SAK Streets