微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在MySQL的无行日中每天对行数进行分组?

如何解决如何在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 举报,一经查实,本站将立刻删除。