gpt4 book ai didi

sql - 2 列上的 array_agg() 函数

转载 作者:行者123 更新时间:2023-11-29 11:58:57 26 4
gpt4 key购买 nike

下面有一个表格

CUST_ID integer          | servername text        | DATE
--------------------- |---------------------------------------
1 | '1' | '2017-01-15'
1 | '1' | '2017-02-15'
2 | '1' | '2017-01-15'
2 | '2' | '2017-01-15'

我想这样提取信息。

CUST_ID integer          | servername text        | DATE
-------------------------|------------------------|------------------------------
1 | '1' | {'2017-01-15', '2017-02-15'}
2 | {'1', '2'} | '2017-01-15'

我已经尝试过 GROUP BY CUST_ID, DATE UNION GROUP BY CUST_ID, SERVICE 这样的。显然我得到了一个 ERROR: UNION types text and text[] cannot be matched 因为在第一个选择查询中,servername 不是一个数组。

SELECT CUST_ID, servername, array_agg(trans_date) FROM infomation
GROUP by CUST_ID, servername

UNION
SELECT CUST_ID, array_agg(servername), trans_date FROM infomation
GROUP by CUST_ID, trans_date;

最佳答案

您在第二列中混合使用 texttext[],在第二列中混合使用 datedate[]第三栏。那永远行不通。如果您可以在所有情况下使用数组,那么这应该可行:

SELECT cust_id,
array_agg(DISTINCT servername) AS service,
array_agg(DISTINCT trans_date) AS trans_date
FROM information
GROUP BY cust_id;

关于sql - 2 列上的 array_agg() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42478742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com