配列での集計関数の使用 - Amazon Athena

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

配列での集計関数の使用

  • 配列内の値を加算するには、次の例のように SUM を使用します。

  • 配列内の複数の行を集計するには、array_agg を使用します。詳細については、サブクエリからの配列の作成を参照してください。

注記

ORDER BY は、Athena エンジンバージョン 2 以降の集約関数でサポートされています。

WITH dataset AS ( SELECT ARRAY [ ARRAY[1,2,3,4], ARRAY[5,6,7,8], ARRAY[9,0] ] AS items ), item AS ( SELECT i AS array_items FROM dataset, UNNEST(items) AS t(i) ) SELECT array_items, sum(val) AS total FROM item, UNNEST(array_items) AS t(val) GROUP BY array_items;

最後の SELECT ステートメントでは、sum()UNNEST を使用する代わりに、reduce() を使用して処理時間とデータ転送を短縮できます。次に例を示します。

WITH dataset AS ( SELECT ARRAY [ ARRAY[1,2,3,4], ARRAY[5,6,7,8], ARRAY[9,0] ] AS items ), item AS ( SELECT i AS array_items FROM dataset, UNNEST(items) AS t(i) ) SELECT array_items, reduce(array_items, 0 , (s, x) -> s + x, s -> s) AS total FROM item;

いずれのクエリも次の結果を返します。返される結果の順序は保証されません。

+----------------------+ | array_items | total | +----------------------+ | [1, 2, 3, 4] | 10 | | [5, 6, 7, 8] | 26 | | [9, 0] | 9 | +----------------------+