Postgres Query中的连接结果集,删除了重复项

时间:2014-12-09 20:52:08

标签: postgresql

this question类似,我正在寻找一种方法将查询结果的多行结果连接成一行,但不保留重复项。我要做的是将旧数据与新数据相匹配,但在新数据集中只允许一个值,其中前面有多个值。

目前,我可以使用with子句提取以下数据集:

  id  |  new  |  old
----------------------
 1001 |   x   |   a
 1001 |   x   |   b
 1001 |   x   |   c
 1002 |   y   |   b
 1002 |   y   |   e
 1002 |   y   |   f
 1003 |   z   |   b
 1003 |   z   |   c
 1004 |   z   |   c

我需要提取的更多内容如下:

  id  |  new  |  old
----------------------
 1001 |   x   | a,b,c
 1002 |   y   | b,e,f
 1003 |   z   |  b,c
 1004 |   z   |   c

1 个答案:

答案 0 :(得分:3)

除非我遗漏了某些内容,否则这是将id,new:

分组的简单案例
select id, new, string_agg(old, ',' order by old)
from dupes
group by id, new
order by id;

SQLFiddl:http://sqlfiddle.com/#!15/49706/1