如何计算列中的所有值,显示该列中的值并按日期列分组?

How to count all values from a column, show values in that column and group by a date column?

我有一个 SQL 数据库,其中包含以下列:CreatedAt (datetime) 和 PlatformName (varchar)

| CreatedAt  | PlatformName   |
| --------   | -------------- |
| 2021/05/05 | bazinga.ar     |
| 2021/06/06 | rammen.us      |
| 2021/05/05 | iroko.it       |
|  2021/06/06  | sundance.uk    |

关系是一对多(一个日期到多个平台名称),我想做一个计算平台名称的查询,显示不同的平台名称和 groupby CreatedAt,像这样

CreatedAt Count(PlatformName) PlatformName(without duplicates)
2021/06/02 45 name1, name2, name3

这是我的查询 SELECT CreatedAt, COUNT(PlatformName) FROM database GROUP BY CreatedAt ORDER BY CreatedAt;

但我不知道如何显示不同的平台名称,这可能吗?

由于您似乎不确定您使用的是哪个数据库平台,以下适用于 SQL Server

select CreatedAt,
   Count(*) CountOfPlatformName,
   String_Agg(platformName,', ') PlatformNames
from t
group by createdAt
order by createdAt

大多数数据库平台都有某种字符串聚合,如果您使用 MySql 它将是 Group_concat,因此 ymmv,请适当调整。