Presto:聚合所有列的数组

Eda*_*ame 2 sql arrays distinct presto trino

我有下表:

name   pets
Alex   [dog, cat, bird]
Tom    [rabbit, cat]
Mary   [snake, dog, fish, cow]
Dave   [dog]
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以创建一个查询来查找所有宠物。也就是说,我正在寻找如下输出:

[dog, cat, bird, rabbit, snake, fish, cow]
Run Code Online (Sandbox Code Playgroud)

目前的做法是将表导出为csv并使用python来解决。我想知道这是否可以直接在 Presto 查询中完成?谢谢!

GMB*_*GMB 5

Presto具有强大的数组功能。这应该有效:

select array_distinct(flatten(array_agg(pets))) all_pets
from mytable
Run Code Online (Sandbox Code Playgroud)

基本上,这会将所有数组聚合在一起,作为数组的数组,然后将所有元素连接到一个数组中,最后删除重复项。