我有一个数据集,我需要从中计算每天分组的所有行出现次数,并将它们汇总为以下格式的数据集:
| date | count |
| 2001-01-01 | 11 |
| 2001-01-02 | 0 |
| 2001-01-03 | 4 |
问题是,某些时间段的某些数据丢失了,应该创建新的日期以使计数为零。考虑到同样的问题,我搜索了各种主题,从他们那里我了解到,可以通过创建一个临时日历表来保存所有日期并将结果数据集与日期表连接来解决。
不过,我对我正在使用的数据库只有读取权限,因此我无法创建单独的日历表。那么这是否可以仅在单个查询中解决?如果没有,我总是可以在 PHP 中执行此操作,但我更喜欢更直接的方式来执行此操作。
编辑:只是根据评论中提出的问题进行澄清:缺少的日期是特定的用户给定时间范围所必需的。例如,查询可能是:
SELECT date(timestamp), count(distinct(id))
FROM 'table'
WHERE date(timestamp) BETWEEN date("2001-01-01") AND date("2001-12-31")
GROUP BY date(timestamp)