如何避免分组依据中的唯一列?

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

但我也想包括日期,我该如何避免在分组依据中出现这种情况,因为这些值是唯一的。

您似乎只想从 selectgroup 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