この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

集計関数

値の計算を行うには、集計関数を使用します。

空集合に集計関数を使用すると、null が返されます。たとえば、外部共通グルーピングの不一致列で集計関数を使用すると、空集合になる可能性があります。

次の表は、サポートされる集計関数の一覧です。

集計関数 説明
avg() または average() 数値項目の平均値を返します。
たとえば、平均マイル数を計算するには、次のステートメントを使用します。
1a1 = group a by (origin, dest);
2a2 = foreach a1 generate origin as origin, dest as destination, average(miles) as miles;
count() クエリ条件に一致する行数を返します。
たとえば、航空会社数を計算するには、次のステートメントを使用します。
1q = foreach q generate 'carrier' as 'carrier', count() as 'count';
count() 関数は、group または cogroup ステートメントへの入力ストリームで実行されます。新しくグループ化されたストリームやグループ化されていないストリームでは実行されません。
1a = load "0Fcyy000000002qCAA/0Fcyy000000002WCAQ";
2a1 = group a by (Year);
3q = foreach a1 generate count(a) as countYear, count() as count, Year as year;
4q = limit q 20;
a1 は新しくグループ化されたストリームであるため、count() 関数に渡すことはできません。
first() 最初のタプルの値を返します。期待どおりに動作させるには、並び替え順を把握しているか、その基準の値が集合内のすべてのタプルで同じであることがわかっている必要があります。

たとえば、出発地と目的地の各組み合わせ間の距離を計算するには、次のステートメントを使用します。

1a1 = group a by (origin, dest);
2a2 = foreach a1 generate origin as origin, dest as destination, first(miles) as miles;
last() 最後のタプルの値を返します。

たとえば、出発地と目的地の各組み合わせ間の距離を計算するには、次のステートメントを使用します。

1a1 = group a by (origin, dest);
2a2 = foreach a1 generate origin as origin, dest as destination, last(miles) as miles;
max() 項目の最大値を返します。

この関数は、引数として基準のみを取ります。ディメンションを取ることはできません。

median() グループ化された数値型の式を受け入れ、中央値を返します (並び替えた順序で null 値は無視)。1 つの中央値が特定できない場合 (null 以外の値の数が偶数の場合)、median は中央値に最も近い 2 つの数値の平均を返します。

式には「xInt」や「price」など任意の識別子を使用できますが、price/100 または ceil(distance) などの複雑な式や、2.5 などのリテラルは使用できません。

1q = load "data/airline";
2q = group q by dest;
3q = foreach q generate dest, median(miles) as medMiles;
4limit q 5;
median の前に group by 句がない場合、個々の行が独自のグループとして処理されます。
1q = load "data/airline";
2q = foreach q generate dest, median(miles) as medMiles;
3limit q 5;
min() 項目の最小値を返します。

この関数は、引数として基準のみを取ります。ディメンションを取ることはできません。

sum() 数値項目の合計を返します。
1a = load "0Fbxx000000002qCAA/0Fcxx000000002WCAQ";
2a = filter a by dest in ["ORD", "LAX", "ATL", "DFW", "PHX", "DEN", "LGA"]; 
3a = group a by carrier; 
4b = foreach a generate carrier as airline, sum(miles) as miles;
unique() 一意の値の数を返します。

たとえば、航空会社の出発地数と目的地数を調べるには、次のステートメントを使用します。

1a1 = group a by carrier;
2a2 = foreach a1 generate carrier as carrier, unique(origin) as origins, unique(dest) as destinations;