メインコンテンツまでスキップ
翻訳ページ

このページは AI の支援を受けて英語から翻訳されています。内容が異なる場合は英語版が正となります。

LAST_VALUE

ウィンドウフレームの最後の行に対して評価した式の値を返します。

この組み込みウィンドウ関数は、集約ウィンドウ関数と同じ方法で各行のウィンドウフレームを計算します。各行について、ウィンドウフレームの最後の行に対して評価した式の値を返します。

関連項目: [SELECT] [FIRST_VALUE] [NTH_VALUE]


構文​

SELECT LAST_VALUE(expr) OVER (
[PARTITION BY column]
ORDER BY column
[ROWS BETWEEN frame_start AND frame_end]
) FROM <multipartIdentifier>;

引数​

expr ウィンドウフレームの最後の行に対して評価する式。

PARTITION BY column 省略可能。結果セットをパーティションに分割します。LAST_VALUE 関数は各パーティション内で個別に適用されます。

ORDER BY column 行を処理する順序を指定します。

ROWS BETWEEN frame_start AND frame_end 省略可能。ウィンドウフレームを定義します。主なオプションは次のとおりです。

  • ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW(デフォルト)
  • ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING

戻り値​

ウィンドウフレームの最後の行に対して評価した式の値を返します。


例​

参考として最新のリリースを取得する​

-- Find first and latest release for context
SELECT
tag_name,
name,
published_at,
FIRST_VALUE(tag_name) OVER (
ORDER BY published_at
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) as first_release,
LAST_VALUE(tag_name) OVER (
ORDER BY published_at
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) as latest_release
FROM github.repos.releases
WHERE owner = 'stackql'
AND repo = 'stackql';
ヒント

デフォルトでは、ウィンドウフレームはパーティションの先頭から現在の行までです。そのため、LAST_VALUE は現在の行の値を返します。パーティション内の実際の最後の値を取得するには、ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING を使用します。

詳細については、https://sqlite.org/windowfunctions.html#built-in_window_functions を参照してください。