Hi, I'm Ask INFA!
What would you like to know?
ASK INFAPreview
Please to access Ask INFA.

目次

Search

  1. はじめに
  2. トランスフォーメーション
  3. ソーストランスフォーメーション
  4. ターゲットトランスフォーメーション
  5. アクセスポリシートランスフォーメーション
  6. アグリゲータトランスフォーメーション
  7. B2Bトランスフォーメーション
  8. チャンキングトランスフォーメーション
  9. クレンジングトランスフォーメーション
  10. データマスキングトランスフォーメーション
  11. データサービストランスフォーメーション
  12. 重複排除トランスフォーメーション
  13. 式トランスフォーメーション
  14. フィルタトランスフォーメーション
  15. 階層ビルダートランスフォーメーション
  16. 階層パーサートランスフォーメーション
  17. 階層プロセッサトランスフォーメーション
  18. 入力トランスフォーメーション
  19. Javaトランスフォーメーション
  20. JavaトランスフォーメーションAPIリファレンス
  21. ジョイナトランスフォーメーション
  22. ラベラトランスフォーメーション
  23. ルックアップトランスフォーメーション
  24. 機械学習トランスフォーメーション
  25. マップレットトランスフォーメーション
  26. ノーマライザトランスフォーメーション
  27. 出力トランスフォーメーション
  28. 解析トランスフォーメーション
  29. Pythonトランスフォーメーション
  30. ランクトランスフォーメーション
  31. ルータトランスフォーメーション
  32. ルール仕様トランスフォーメーション
  33. シーケンストランスフォーメーション
  34. ソータートランスフォーメーション
  35. SQLトランスフォーメーション
  36. 構造パーサートランスフォーメーション
  37. トランザクション制御トランスフォーメーション
  38. 共有体トランスフォーメーション
  39. ベクトル埋め込みトランスフォーメーション
  40. Velocityトランスフォーメーション
  41. ベリファイヤトランスフォーメーション
  42. Webサービストランスフォーメーション

トランスフォーメーション

トランスフォーメーション

例: ウィンドウを使用した有効期限の計算

例: ウィンドウを使用した有効期限の計算

あなたは自分の担当顧客2社の財務プランに関する情報を持つ銀行家です。各プランに、開始日が関連付けられています。
各顧客のために、次のプランの有効化日付に基づいて、現在のプランの有効期限を知りたいとします。前のプランは新しいプランの開始時に終了するため、前のプランの終了日は、次のプランの開始日マイナス1日です。
次の表に、顧客コード、関連プランコード、各プランの開始日を示します。
CustomerCode
PlanCode
StartDate
C1
00001
2014-10-01
C2
00002
2014-10-01
C2
00002
2014-11-01
C1
00004
2014-10-25
C1
00001
2014-09-01
C1
00003
2014-10-10
有効期限を計算するには、次のタスクを実行します。
  1. パーティションキーおよびオーダーキーを定義します。
    次のウィンドウプロパティを設定して、データを顧客コードでパーティション化し、データを開始日の昇順に並べます。
    プロパティ
    説明
    フレーム
    指定されていません。
    LEAD関数は、オフセット引数に基づいて行にアクセスし、フレームを無視します。
    パーティションキー
    CustomerCode
    行を顧客コード別にグループ化し、計算が個々の顧客に基づくようにします。
    オーダーキー
    StartDate昇順
    開始日の昇順で、データを時系列に配置します。
    次の表に、顧客コードでグループ化された開始日順のデータを示します。
    CustomerCode
    PlanCode
    StartDate
    C1
    00001
    2014-09-01
    C1
    00002
    2014-10-01
    C1
    00003
    2014-10-10
    C1
    00004
    2014-10-25
    C2
    00001
    2014-10-01
    C2
    00002
    2014-11-01
  2. ウィンドウ関数の定義
    入力ごとに次の行にアクセスするLEAD関数を定義します。
    次の計算を実行する式フィールドを設定します。
    LEAD ( StartDate, 1, '01-Jan-2100' )
    LEAD関数の詳細については、『
    関数リファレンス
    』を参照してください。
  3. ADD_TO_DATE関数の定義
    アクセスした日付から1日を除算するADD_TO_DATE関数を使用します。
    次の計算を実行する式フィールドを設定します。
    ADD_TO_DATE ( LEAD ( StartDate, 1, '01-Jan-2100' ), 'DD', -1, )
    次のプランの開始日から1日を除算することで、現在のプランの終了日がわかります。
    次の表に、各プランの終了日を示します。
    CustomerCode
    PlanCode
    StartDate
    EndDate
    C1
    00001
    2014-09-01
    2014-09-30
    C1
    00002
    2014-10-01
    2014-10-09
    C1
    00003
    2014-10-10
    2014-10-24
    C1
    00004
    2014-10-25
    2099-12-31*
    C2
    00001
    2014-10-01
    2014-10-31
    C2
    00002
    2014-11-01
    2099-12-31*
    *LEAD関数は、これらのプランがまだ終了していないために、デフォルト値を返しました。これらの行はパーティション外であるため、ADD_TO_DATE関数は01-Jan-2100から1日を除算し、2099-12-31を返しました。