トランスフォーメーション > 式トランスフォーメーション > 例: ウィンドウでの集計関数の実行
  

例: ウィンドウでの集計関数の実行

各従業員の給与と対応する部門の平均給与を比較するとします。
次の表に、部門名、従業員ID番号、従業員の給与の一覧を示します。
Department
Employee
Salary
Development
11
5200
Development
7
4200
Development
9
4500
Development
8
6000
Development
10
5200
Personnel
5
3500
Personnel
2
3900
Sales
3
4800
Sales
1
5000
Sales
4
4800
すべての従業員を計算に含めるための、バインドなしフレームを設定し、各従業員の給与とその従業員の部門内の平均給与との間の差異を計算する集計関数を定義します。

ウィンドウプロパティ

プロパティ
説明
開始offset
前のすべての行
現在の入力行の前に表示される行数を記述します。
終了オフセット
後のすべての行
現在の入力行の後に表示される行数を記述します。
オーダーキー
昇順の給与
データを給与の昇順に配置します。
パーティションキー
部門
行を部門別にグループ化します。
[前のすべての行]および[後のすべての行]を選択した場合は、すべてのパーティション行が含まれます。例えば、現在の行が3行目だとします。3行目は「Development」パーティション内にあるため、このフレームには、「Development」パーティション内の3行目前後のすべての行に加えて、3行目が含まれます。

ウィンドウ関数

式トランスフォーメーションでウィンドウプロパティを設定するため、集計関数はウィンドウ関数として使用できます。
各従業員の給与とその従業員の部門内の平均給与との間の差異を計算する次の集計関数を定義します。
Salary - AVG ( Salary ) = Salary_Diff

アウトプット

トランスフォーメーションは、次の給与の差異を生成します。
Department
Employee
Salary
Salary_Diff
Development
11
5200
-820
Development
7
4200
-520
Development
9
4500
180
Development
8
6000
180
Development
10
5200
980
Personnel
5
3500
200
Personnel
2
3900
200
Sales
3
4800
-66
Sales
1
5000
-66
Sales
4
4800
134
どの従業員が同一部門の平均給与よりも少なく、または多く稼いでいるかを特定できます。この情報に基づき、その他のトランスフォーメーションを追加し、データをより詳しく調べることができます。例えば、ランクトランスフォーメーションを追加し、各従業員の同一部門内での数値的なランクを生成できます。