LAG ウィンドウ関数
LAG ウィンドウ関数は、パーティションの現在の行より上 (前) の指定されたオフセットの行の値を返します。
構文
LAG (value_expr [, offset ]) [ IGNORE NULLS | RESPECT NULLS ] OVER ( [ PARTITION BY window_partition ] ORDER BY window_ordering )
引数
- value_expr
-
関数の対象となる列または式。
- offset
-
値を返す現在の行より前の行数を指定するオプションのパラメータ。オフセットは整数の定数、または整数を検証する式にすることができます。オフセットを指定していない場合、AWS Clean Rooms はデフォルト値として
1
を使用します。0
のオフセットは現在の行を示します。 - IGNORE NULLS
-
AWS Clean Rooms が使用する行を決定するときに Null 値をスキップすることを指定するオプションの引数。IGNORE NULLS がリストされていない場合、Null 値が含まれます。
注記
NVL または COALESCE 式を使用し、Null 値を別の値で置換できます。
- RESPECT NULLS
-
AWS Clean Rooms は使用される行を決定するために Null 値を含める必要があることを示します。IGNORE NULLS を指定しない場合、RESPECT NULLS はデフォルトでサポートされます。
- OVER
-
ウィンドウのパーティションおよび並び順を指定します。OVER 句にウィンドウフレーム仕様を含めることはできません。
- PARTITION BY window_partition
-
OVER 句の各グループのレコードの範囲を設定するオプションの引数。
- ORDER BY window_ordering
-
各パーティション内の行をソートします。
LAG ウィンドウ関数は、AWS Clean Rooms のデータ型を使用する式をサポートします。戻り値の型は value_expr の型と同じです。
例
次の例は、購入者 ID 3 の購入者に販売されたチケット数と購入者 3 がチケットを購入した時刻を示します。購入者 3 の以前の販売と各販売を比較するには、クエリは販売ごとに以前の販売数を返します。2008 年 1 月 16 日より前に購入されていないため、最初の以前の販売数は Null です。
select buyerid, saletime, qtysold, lag(qtysold,1) over (order by buyerid, saletime) as prev_qtysold from sales where buyerid = 3 order by buyerid, saletime; buyerid | saletime | qtysold | prev_qtysold ---------+---------------------+---------+-------------- 3 | 2008-01-16 01:06:09 | 1 | 3 | 2008-01-28 02:10:01 | 1 | 1 3 | 2008-03-12 10:39:53 | 1 | 1 3 | 2008-03-13 02:56:07 | 1 | 1 3 | 2008-03-29 08:21:39 | 2 | 1 3 | 2008-04-27 02:39:01 | 1 | 2 3 | 2008-08-16 07:04:37 | 2 | 1 3 | 2008-08-22 11:45:26 | 2 | 2 3 | 2008-09-12 09:11:25 | 1 | 2 3 | 2008-10-01 06:22:37 | 1 | 1 3 | 2008-10-20 01:55:51 | 2 | 1 3 | 2008-10-28 01:30:40 | 1 | 2 (12 rows)