LEAD
詳細モードでは、LEAD関数は式トランスフォーメーションの次の行からのデータを返します。この関数を使用して、現在の行の値と、次の行の値を比較します。
LEAD関数を使用するには、パーティションキーとオーダーキーをウィンドウプロパティとして設定し、式トランスフォーメーションでも設定を行う必要があります。
構文
LEAD ( column_name, offset, default )
引数 | 必須/ オプション | 説明 |
---|
column_name | 必須 | 関数で操作する対象の列または式。 |
offset | 必須 | 整数データ型。値を取得する、現在の行の前の行数。 |
default | オプション | オフセットがパーティションまたはテーブルの範囲外にある場合に返されるデフォルト値。デフォルトはNULLです。 入力値と同じデータ型である引数、またはオフセット引数を使用したデフォルトの引数を指定できます。 複合データ型を含むデフォルトの引数、またはSYSTIMESTAMP引数を指定することはできません。 |
戻り値
指定されたcolumn_nameのデータ型。
戻り値が指定されたパーティションの境界の外側にある場合はdefault。
defaultが省略されている場合、またはNULLに設定されている場合は、NULL。
例1
この例は、従業員名と雇入日のデータをLEAD関数で使用した場合を示したものです。
次の表に、従業員に関する情報を示します。
EMPLOYEE | HIRE_DATE | RETURN VALUE |
---|
Hynes | 2012/12/07 | 2014/05/18 |
Williams | 2014/05/18 | 2015/07/24 |
Pritchard | 2015/07/24 | 2015/12/24 |
Snyder | 2015/12/24 | 2016/11/15 |
Troy | 2016/11/15 | 2017/08/10 |
Randolph | 2017/08/10 | NULL |
|
それぞれの従業員について、以下の式は次の従業員が雇用された日付を返します。
LEAD ( HIRE_DATE, 1, NULL )
最後の行には先行する値がないため、関数はデフォルトのNULL値を返します。
例2
この例は、2暦年の販売ノルマの値をLEAD関数で使用した場合を示したものです。
データを年でパーティション化し、四半期で順序付けします。
次の表に、関数で使用される販売ノルマのデータを示します。
YEAR | QUARTER | SALES_QUOTA | QUOTA_DIFF |
---|
2016 | 1* | 300 | 7700 |
2016 | 2* | 7000 | 0 |
2016 | 3 | 8000 | 0 |
2017 | 1 | 5000 | 4000 |
2017 | 2 | 400 | 0 |
2017 | 3 | 9000 | 0 |
|
*第2四半期と第3四半期の行に先行する値は指定されたパーティションの範囲外であるため、関数は値「0」を返します。
次の式は、2つの暦年の第1四半期から第3四半期までの販売ノルマの値の差を返します。
LEAD ( Sales_Quota, 2, 0 ) - Sales_Quota