如何解决如何在MySQL的无行日中每天对行数进行分组?
为了处理带有0条对应记录的日期,我的常规做法是使用日历表进行联接。
例如,创建一个表,其中一个字段称为,calendar_date
并在其中填充从1st Jan 2000
到的每个日期31st Dec
2070
,或其他适合您报表目的的范围。
然后使用类似…
SELECT
calendar.calendar_date,
COUNT(*)
FROM
calendar
LEFT JOIN
yourData
ON yourData.timeStamp >= calendar.calendar_date
AND yourData.timeStamp < calendar.calendar_date + 1
WHERE
calendar.calendar_date >= '01 Jan 2012'
AND calendar.calendar_date < '04 Jan 2012'
GROUP BY
calendar.calendar_date
该表可以有许多其他用途,例如标记银行假期,几周和几个月的开始。通过谨慎使用标志和索引,您可以从中获得很多收益。
解决方法
所以我有这张桌子。它有几百行。每行中都有一个日期时间字段。我需要完成的是获取给定时间段内有多少行,而不是整个时间段,而是该时间段的每一天。到此为止,我知道该怎么办。但是,此外,我还需要在表中没有值0的日期的行。
因此,例如:
2012-01-01 12:13
2012-01-01 43:32
2012-01-03 23:32
应该给我这样的结果:
2012-01-01 2
2012-01-02 0
2012-01-03 1
任何人都可以帮忙吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。