我有一张这样的桌子:
user 1 A
user 1 B
user 2 H
user 2 G
user 2 A
我需要这样的结果:
user 1 AB
user 2 HGA
有没有办法获得这样的结果?
我有一张这样的桌子:
user 1 A
user 1 B
user 2 H
user 2 G
user 2 A
我需要这样的结果:
user 1 AB
user 2 HGA
有没有办法获得这样的结果?
所以在这里我们创建一些测试数据
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[]
该列的PostgreSQL(文本数组)array_agg
array_to_string
。你也可以使用string_agg
,
SELECT id, string_agg(col, '')
FROM foo
GROUP BY id;
更好的解决方案是使用str_sum
聚合函数
select
user,
str_sum(column_name,'')
from table_name
group by user;