如何避免分组依据中的唯一列?
how to avoid unique columns in group by?
我正在尝试执行此查询
Select ps.id,count(ps.id) as idCount,p.date
from table1 p
join table2 PS on p.fq = PS.fq
group by ps.id,p.date
得到这样的结果
XYZ11 1 2020-10-23 12:26:35
XYZ11 1 2020-11-05 15:55:20
ABC00 1 2020-11-04 17:56:42
ABC00 1 2020-10-23 12:26:35
但是我希望我的结果不是这样
XYZ11 2 date?
ABC00 2
但我也想包括日期,我该如何避免在分组依据中出现这种情况,因为这些值是唯一的。
您似乎只想从 select
和 group by
子句中删除日期:
select ps.id, count(*) as idcount
from table1 p
join table2 ps on p.fq = ps.fq
group by ps.id
这会为您提供每 id
行,以及每组中的行数。
要显示所有日期,您可以使用DB2 中的LISTAGG 聚合函数。这将使用指定的分隔符将日期连接在一个列中。
SELECT ps.id, COUNT(ps.id) AS idCount, LISTAGG(p.date, ',') AS Dates
FROM table1 p
JOIN table2 ps ON p.fq = ps.fq
GROUP by ps.id
我正在尝试执行此查询
Select ps.id,count(ps.id) as idCount,p.date
from table1 p
join table2 PS on p.fq = PS.fq
group by ps.id,p.date
得到这样的结果
XYZ11 1 2020-10-23 12:26:35
XYZ11 1 2020-11-05 15:55:20
ABC00 1 2020-11-04 17:56:42
ABC00 1 2020-10-23 12:26:35
但是我希望我的结果不是这样
XYZ11 2 date?
ABC00 2
但我也想包括日期,我该如何避免在分组依据中出现这种情况,因为这些值是唯一的。
您似乎只想从 select
和 group by
子句中删除日期:
select ps.id, count(*) as idcount
from table1 p
join table2 ps on p.fq = ps.fq
group by ps.id
这会为您提供每 id
行,以及每组中的行数。
要显示所有日期,您可以使用DB2 中的LISTAGG 聚合函数。这将使用指定的分隔符将日期连接在一个列中。
SELECT ps.id, COUNT(ps.id) AS idCount, LISTAGG(p.date, ',') AS Dates
FROM table1 p
JOIN table2 ps ON p.fq = ps.fq
GROUP by ps.id