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

按周分组,如何获得空周?

如何解决按周分组,如何获得空周?

sql无法返回某些表中不存在的行。为了获得想要的效果,您将需要一个表Weeks(WeekNo INT),该表在一年中的每个可能的星期(IIRC是53或54个可能的星期,具体取决于您的计算方式)中都有一行。

然后,将此表与OUTER JOIN联接到您的常规结果中,以增加额外的几周时间。

SELECT DATE_FORMAT(date, 'Y:%X - Week:%V') AS regweek, COUNT(date) as number 
    FROM YourTable RIGHT OUTER JOIN Weeks ON WEEK(YourTable.date) = Weeks.WeekNo

[更新]:请注意使用COUNT(日期)的用户,而不是COUNT(*)。累加COUNT时,sql不会在日期列中包含NULL值。由于缺少的星期没有日期,因此正确地为您提供了那几周的0个事件。

解决方法

我有以下代码,该代码以周为单位对某些事件(YYYY-MM-DD HH:MM:SS)进行分组,例如显示为“ Y:2010-Week:50”。

SELECT DATE_FORMAT(date,'Y:%X - Week:%V') AS regweek,COUNT(*) as number

效果很好,但即使没有任何活动,我也想整周返回。

如果在第三周未注册任何事件,此刻我会得到:

week 1: 10
week 2: 1
week 4: 2

我想得到:

week 1: 10
week 2: 1
week 3: 0
week 4: 2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。