- LAG関数の使い方と例: LAG関数は、現在の行の前の行の値を取得するために使用されます。具体的な使用例を見てみましょう。
例1: 従業員テーブルにおける従業員の売上データを月別に表示するクエリ
SELECT
employee_id,
sales_date,
sales_amount,
LAG(sales_amount) OVER (ORDER BY sales_date) AS previous_sales
FROM
employee_sales
上記のクエリでは、sales_dateで結果を並び替え、LAG関数を使用して直前の売上データを取得しています。このようにすることで、各行に現在の売上データと直前の売上データが表示されます。
- LEAD関数の使い方と例: LEAD関数は、現在の行の次の行の値を取得するために使用されます。以下にLEAD関数の使用例を示します。
例2: 製品テーブルにおける製品の価格変動を表示するクエリ
SELECT
product_id,
price,
LEAD(price) OVER (ORDER BY update_date) AS next_price
FROM
product_prices
上記のクエリでは、update_dateで結果を並び替え、LEAD関数を使用して次の価格を取得しています。これにより、各行に現在の価格と次の価格が表示されます。
- その他の使い方と応用: LAG関数とLEAD関数は、上記の例以外にもさまざまな応用が可能です。例えば、特定の条件に基づいて前後の行の値を比較し、集計や条件付きの計算を行うことができます。
例3: 前後の行の差を計算するクエリ
SELECT
value,
LAG(value) OVER (ORDER BY date) AS previous_value,
value - LAG(value) OVER (ORDER BY date) AS value_difference
FROM
data_table
上記のクエリでは、dateで結果を並び替え、LAG関数を使用して前の値を取得し、その差を計算しています。これにより、各行に現在の値、前の値、およびその差が表示されます。
以上がLAG関数とLEAD関数の基本的な使い方と例です。これらの関数は、データの比較やトレンドの分析、データの変化の検出など、さまざまなデータ処理のシナリオで役立ちます。ぜひご活用ください。