gpt4 book ai didi

sql - 在 postgres 中拆分列值

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

我有一个表,其中包含两列 id 和 data。表中值如下:

id|data|
1 |A,B |
2 |B,C |
3 |C,D |
4 |D,A |
5 |E,C |

我需要表中存在的 A、B、C、D、E 的数量,如下所示。请注意:列是动态的,这意味着它们取决于表中数据列中的值:

A|B|C|D|E|
2|2|3|2|1|

我写了以下查询:

SELECT id,s.data 
FROM my_table t,
unnest(string_to_array(t.data, ',')) s(data);

输出如下:

id|data|
1 | A |
1 | A |
1 | A |
1 | A |
1 | A |
1 | A |
1 | A |
1 | A |

最佳答案

请找到提供您想要的准确输出的查询。

select * from crosstab ('SELECT ''Total'':: text, s.data, count(*)::int 
FROM my_table t, unnest(string_to_array(t.data, '','')) s(data)
group by s.data') as ct(Total text, A int, B int, C int, D int, E int)

请创建扩展 tablefunc(如果未创建)。

关于sql - 在 postgres 中拆分列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41216732/

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