为了处理带有0条对应记录的日期,我的常规做法是使用日历表进行联接。
例如,创建一个表,其中一个字段称为,
calendar_date并在其中填充从
1st Jan 2000到的每个日期
31st Dec2070,或其他适合您报表目的的范围。
然后使用类似…
SELECt calendar.calendar_date, COUNT(*)FROM calendarLEFT JOIN yourData ON yourData.timeStamp >= calendar.calendar_date AND yourData.timeStamp < calendar.calendar_date + 1WHERe calendar.calendar_date >= '01 Jan 2012' AND calendar.calendar_date < '04 Jan 2012'GROUP BY calendar.calendar_date
该表可以有许多其他用途,例如标记银行假期,几周和几个月的开始。通过谨慎使用标志和索引,您可以从中获得很多收益。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)