gpt4 book ai didi

postgresql - SQL 按不同数组分组

转载 作者:行者123 更新时间:2023-11-29 13:53:50 25 4
gpt4 key购买 nike

我有table1:

col1 (integer)  |  col2 (varchar[]) | col3 (integer)    
----------------------------------------------------
1 | {A,B,C} | 2
1 | {A} | 5
1 | {A,B} | 1
2 | {A,B} | 2
2 | {A} | 3
2 | {B} | 1

我想通过仅保留来自“col3”的 DISTINCT 值来使用 GROUP BY“col1”来总结“col3”

预期结果如下:

col1 (integer)  |  col2 (varchar[]) | col3 (integer)    
----------------------------------------------------
1 | {A,B,C} | 8
2 | {A,B} | 6

我试过这个:

SELECT col1, array_to_string(array_accum(col2), ','::text),sum(col3) FROM table1 GROUP BY col1

但结果不是预期的:

col1 (integer)  |  col2 (varchar[])       | col3 (integer)    
---------------------------------------------------------------
1 | {A,B,C,A,A,B} | 8
2 | {A,B,A,B} | 6

你有什么建议吗?

最佳答案

如果你想要的 col2 的逻辑是最大的(比如你的预期输出是 {A,B,C} & {A, B}.

SELECT col1, (SELECT sub.col2 
FROM table1 sub
INNER JOIN table1 sub ON MAX(char_length(sub.col2)) = col2
WHERE sub.col1 = col1)
SUM(col3)
FROM table1
GROUP BY col1

关于postgresql - SQL 按不同数组分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36033556/

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