LAG
構文
関連項目:
構文、セマンティクス、制限事項、およびvalue_expr
の書式の詳細は、「分析ファンクション」を参照してください。
目的
LAG
は分析ファンクションです。これは、自己結合せずに、表の2つ以上の行へ同時アクセスを行います。問合せから戻される一連の行およびカーソル位置を指定すると、LAG
は、その位置より前にある指定された物理オフセットにある行へアクセスします。
オプションのoffset
引数には、0(ゼロ)より大きい整数を指定します。offset
を指定しない場合、デフォルト値は1です。オフセットがウィンドウの有効範囲を超えた場合、オプションのdefault
値が戻されます。default
を指定しない場合、デフォルトはNULLです。
{RESPECT
| IGNORE
} NULLS
は、value_expr
のNULL値を計算に含めるか除外するかを指定します。デフォルトはRESPECT
NULLS
です。
value_expr
には、LAG
または他の分析ファンクションを使用して分析ファンクションをネストできません。ただし、他の組込みファンクション式をvalue_expr
で使用できます。
関連項目:
-
LAG
の戻り値が文字値である場合に、それに割り当てる照合を定義する照合導出ルールは、『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Cを参照してください。
例
次の例では、employees
表の各購買係について、その購買係の直前に雇用された従業員の給与を示します。
SELECT hire_date, last_name, salary, LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_sal FROM employees WHERE job_id = 'PU_CLERK' ORDER BY hire_date; HIRE_DATE LAST_NAME SALARY PREV_SAL --------- ------------------------- ---------- ---------- 18-MAY-03 Khoo 3100 0 24-JUL-05 Tobias 2800 3100 24-DEC-05 Baida 2900 2800 15-NOV-06 Himuro 2600 2900 10-AUG-07 Colmenares 2500 2600