如何计算列中的所有值,显示该列中的值并按日期列分组?
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,请适当调整。
我有一个 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,请适当调整。