繁体   English   中英

将列的所有不同值添加到数组

[英]Add all distinct values of a column to an array

我正在尝试将 output 列的不同值放入数组中,而不是SELECT DISTINCT column FROM table ,这将 output 1 行每个唯一值。 我想要只有 1 行。 我已经尝试了一些方法来做到这一点,但我一直以错误告终:

syntax error: no viable alternative at input 'ARRAY_DISTINCT(SELECT'

SELECT
    ARRAY_DISTINCT(SELECT column_1 FROM table WHERE p = '2022-08-17') as column_distinct_values

'Where `p` is the partition

我也尝试了以下产生相同错误的方法。

SELECT
    ARRAY(SELECT DISTINCT column_1 FROM table WHERE p = '2022-08-17') as column_distinct_values

'Where `p` is the partition

所以问题是,实现这一目标的正确语法/方法是什么?


样品输入/所需 output

在此处输入图像描述

SELECT column_1 FROM table WHERE p = '2022-08-17'不返回数组,如果要将所有内容压缩到一个单元格中,可以尝试group by

-- sample data
WITH dataset (val) AS (
    VALUES ('NORAM'),
    ('NORAM'),
    ('NORAM1')
)

-- query
select array_distinct(array_agg(val))
from dataset
group by true; -- fake grouping

或者

-- query
select array_agg(distinct val) 
from dataset 
group by true; -- fake grouping

Output:

_col0
[诺拉姆,诺拉姆1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM