DB2 查询、分组结果并允许不同的值是逗号分隔值
DB2 query, group result and allow different values to be a comma seperated value
我有一个非常简单的查询,returns 结果有时所有列只有一列完全相同,如下所示:
name | address | item | date
---------------------------------------------
Bob 123 East st A123 07-02-2020
Bob 123 East st A213 07-02-2020
我想尝试做到这一点,以便我基本上可以对这个结果进行分组,但这些项目将是一个逗号分隔的列表,如下所示:
name | address | item | date
----------------------------------------------------
Bob 123 East st A123, A213 07-02-2020
我的查询是:
SELECT NAME, ADDRESS, ITEM, DATE
FROM ITEM_TABLE
WHERE DATE <= current_date
GROUP BY NAME, ADDRESS, ITEM, DATE
有什么方法可以更改它,使其仍然按其他列分组,但用逗号分隔一行中的项目?
您正在描述 listagg()
:
select name, address,
listagg(item, ',') within group (order by item) as items,
date
from t
group by name, address, date;
我有一个非常简单的查询,returns 结果有时所有列只有一列完全相同,如下所示:
name | address | item | date
---------------------------------------------
Bob 123 East st A123 07-02-2020
Bob 123 East st A213 07-02-2020
我想尝试做到这一点,以便我基本上可以对这个结果进行分组,但这些项目将是一个逗号分隔的列表,如下所示:
name | address | item | date
----------------------------------------------------
Bob 123 East st A123, A213 07-02-2020
我的查询是:
SELECT NAME, ADDRESS, ITEM, DATE
FROM ITEM_TABLE
WHERE DATE <= current_date
GROUP BY NAME, ADDRESS, ITEM, DATE
有什么方法可以更改它,使其仍然按其他列分组,但用逗号分隔一行中的项目?
您正在描述 listagg()
:
select name, address,
listagg(item, ',') within group (order by item) as items,
date
from t
group by name, address, date;