我有一张这样的表:
user 1 A
user 1 B
user 2 H
user 2 G
user 2 A
我需要一个结果:
user 1 AB
user 2 HGA
有没有办法获得这样的结果?
答案 0 :(得分:0)
所以我们在这里创建一些测试数据
CREATE TABLE foo AS
SELECT * FROM (
VALUES (1,'A'),(1,'B'),(2,'H'),(2,'G'),(2,'A')
) AS f(id,col);
这应该有效,
SELECT id, array_to_string(array_agg(col), '')
FROM table
GROUP BY id;
以下是我们正在做的事情,
text[]
array_agg
(文本数组)
array_to_string
。您也可以使用string_agg
,
SELECT id, string_agg(col, '')
FROM foo
GROUP BY id;
答案 1 :(得分:0)
更好的解决方案是使用str_sum
agregate函数
select
user,
str_sum(column_name,'')
from table_name
group by user;