DB2 SQL:在结果中对具有相同id的记录进行分组?

时间:2013-03-01 15:18:39

标签: sql db2

如果我有一个包含2列的表

text | id
---------
aaa  |  1
bbb  |  1
eee  |  1
mmm  |  2
zzz  |  2
...

是否可以编写一个按ID分组的查询并输出以下结果:

id | text
------------------
 1 | aaa, bbb, eee
 2 | mmm, zzz
...

谢谢!

2 个答案:

答案 0 :(得分:2)

尝试一下,

SELECT  ID, 
        SUBSTR(xmlserialize(xmlagg(xmltext(CONCAT( ', ',text))) as VARCHAR(1024)), 3)
FROM    tableName
GROUP   BY ID;

答案 1 :(得分:2)

使用DB2中的listagg函数:

select id, listagg(text, ', ') as text
from t
group by id

如果您希望按字母顺序排序:

select id, listagg(text, ', ') within group (order by text) as text
from t
group by id