如何在 presto 中将列转换为数组
how to convert a column to an array in presto
Postgres 提供了一种将列转换为数组的方法。示例查询:
WITH
dataset AS (
SELECT '1' as a
union
SELECT '2' as a
union
SELECT '3' as a
)
SELECT
array(select a from dataset) as array_result;
returns
| array_result |
|--------------|
| {2,3,1} |
如何用 Presto 做同样的事情 SQL?
使用array_agg(x [ORDER BY y])聚合函数:
WITH
dataset AS (
SELECT '1' as a
union all
SELECT '2' as a
union all
SELECT '3' as a
)
SELECT
array_agg(a) as array_result from dataset;
结果:
['3', '2', '1']
如果需要array<int>
,在聚合前投射:array_agg(cast(a as int))
Postgres 提供了一种将列转换为数组的方法。示例查询:
WITH
dataset AS (
SELECT '1' as a
union
SELECT '2' as a
union
SELECT '3' as a
)
SELECT
array(select a from dataset) as array_result;
returns
| array_result |
|--------------|
| {2,3,1} |
如何用 Presto 做同样的事情 SQL?
使用array_agg(x [ORDER BY y])聚合函数:
WITH
dataset AS (
SELECT '1' as a
union all
SELECT '2' as a
union all
SELECT '3' as a
)
SELECT
array_agg(a) as array_result from dataset;
结果:
['3', '2', '1']
如果需要array<int>
,在聚合前投射:array_agg(cast(a as int))