创建数组 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

创建数组

要在 Athena 中生成数组文本,请使用 ARRAY 关键字,后跟方括号 [ ],并包括以逗号分隔的数组元素。

示例

此查询会创建一个具有四个元素的数组。

SELECT ARRAY [1,2,3,4] AS items

它返回:

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

此查询创建两个数组。

SELECT ARRAY[ ARRAY[1,2], ARRAY[3,4] ] AS items

它返回:

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

要从兼容类型的选定列创建数组,请如以下示例所示使用查询:

WITH dataset AS ( SELECT 1 AS x, 2 AS y, 3 AS z ) SELECT ARRAY [x,y,z] AS items FROM dataset

此查询返回:

+-----------+ | items | +-----------+ | [1,2,3] | +-----------+

在以下示例中,选定了两个数组,并将其作为欢迎词返回。

WITH dataset AS ( SELECT ARRAY ['hello', 'amazon', 'athena'] AS words, ARRAY ['hi', 'alexa'] AS alexa ) SELECT ARRAY[words, alexa] AS welcome_msg FROM dataset

此查询返回:

+----------------------------------------+ | welcome_msg | +----------------------------------------+ | [[hello, amazon, athena], [hi, alexa]] | +----------------------------------------+

要创建一个键值对,请使用 MAP 运算符,以便采用一个键数组后跟一个值数组,如以下示例所示:

SELECT ARRAY[ MAP(ARRAY['first', 'last', 'age'],ARRAY['Bob', 'Smith', '40']), MAP(ARRAY['first', 'last', 'age'],ARRAY['Jane', 'Doe', '30']), MAP(ARRAY['first', 'last', 'age'],ARRAY['Billy', 'Smith', '8']) ] AS people

此查询返回:

+-----------------------------------------------------------------------------------------------------+ | people | +-----------------------------------------------------------------------------------------------------+ | [{last=Smith, first=Bob, age=40}, {last=Doe, first=Jane, age=30}, {last=Smith, first=Billy, age=8}] | +-----------------------------------------------------------------------------------------------------+