如何在presto中将列转换为数组
Posted
技术标签:
【中文标题】如何在presto中将列转换为数组【英文标题】:how to convert a column to an array in presto 【发布时间】:2021-10-20 23:41:00 【问题描述】: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;
返回
| array_result |
|--------------|
| 2,3,1 |
如何使用 Presto SQL 做同样的事情?
【问题讨论】:
【参考方案1】:使用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))
【讨论】:
以上是关于如何在presto中将列转换为数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Presto Athena 中将 varchar 转换为数组
在 athena/presto 中将数组(varchar)转换为 varchar