[英]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.