トランスフォーメーション > アグリゲータトランスフォーメーション > 集計フィールド
  

集計フィールド

集計計算を定義するには、集計フィールドを使用します。
アグリゲータトランスフォーメーションを設定するときに、集計フィールドを各計算の出力用に作成して、データフローで使用します。集計フィールドでは集計関数を使用できます。条件句と集計以外の関数も使用できます。
集計フィールドは、[プロパティ]パネルの[集計]タブで設定します。集計フィールドを設定するときは、フィールド名、データ型、精度、スケール、説明(オプション)を定義します。説明には最大4000文字を含めることができます。実行する計算を定義することもできます。
集計フィールドを設定するときは、トランスフォーメーション内で使用する計算に変数フィールドを使用できます。集計フィールドと変数フィールドにマクロを組み込むこともできます。
詳細モードでは、Group byフィールドが1つの行を返して、集計式にSTDDEV関数とVARIANCE関数が含まれている場合、出力はNULLになります。その原因は、データ統合がSpark 3.2を使用するためです。出力値0を取得するには、マッピングタスクでspark.sql.legacy.statisticalAggregateセッションプロパティをtrueに設定してください。

集計関数

集計フィールドの式では集計関数を使用できます。
集計関数の詳細については、『Function Reference』を参照してください。
SQL ELTモードのマッピングは、クラウドデータウェアハウスのネイティブ集計関数を使用します。詳細については、クラウドデータウェアハウスのマニュアルを参照してください。

ネストされた集計関数

ネストされた集計関数は、別の集計関数内の集計関数です。
例えば、次の式では売上が合計されて最大の数値が返されます。
MAX( SUM( SALES ))
アグリゲータトランスフォーメーションの異なる出力フィールドに、単一レベルの関数を複数含めたり、ネストされた関数を複数含めたりすることができます。アグリゲータトランスフォーメーションには、単一レベルの関数とネストされた関数の両方を含めることはできません。詳細モードでは集計関数をネストできません。
アグリゲータトランスフォーメーションの出力フィールドに単一レベルの関数が含まれる場合には、そのトランスフォーメーションの他のフィールドでネストされた関数を使うことはできません。単一レベルの関数とネストされた関数の両方を作成する必要がある場合は、別々のアグリゲータトランスフォーメーションを作成してください。

条件句

集計で使用される行の数を削減するには、集計式で条件句を使用します。条件句には、TRUEまたはFALSEに評価される任意の句を使用できます。
たとえば以下の式を使用して、四半期単位のノルマを超過して達成した従業員の歩合総額を算出します。
SUM( COMMISSION, COMMISSION > QUOTA )