Amazon Athena
ユーザーガイド

配列のフィルタ処理

フィルタ条件に一致する行のコレクションから配列を作成します。

WITH dataset AS ( SELECT ARRAY[1,2,3,4,5] AS items ) SELECT array_agg(i) AS array_items FROM dataset CROSS JOIN UNNEST(items) AS t(i) WHERE i > 3

このクエリは以下を返します。

+-------------+ | array_items | +-------------+ | [4, 5] | +-------------+

配列の各要素に特定の値 (2 など) が含まれているかどうかに基づいて配列をフィルタ処理します。次に例を示します。

WITH dataset AS ( SELECT ARRAY [ ARRAY[1,2,3,4], ARRAY[5,6,7,8], ARRAY[9,0] ] AS items ) SELECT i AS array_items FROM dataset CROSS JOIN UNNEST(items) AS t(i) WHERE contains(i, 2)

このクエリは以下を返します。

+--------------+ | array_items | +--------------+ | [1, 2, 3, 4] | +--------------+