由于某些奇怪的原因,按周分组返回奇数日期间隔和日期时间字段。
“已完成”是一个日期时间字段,并使用此查询:
SELECT
Completed,
COUNT( DISTINCT Table1.ID ) AS ActivityCount
FROM Table1
JOIN Table1Items
ON Table1.ID = Table1Items.ID
JOIN database_database.Table2
ON Table2.Item = Table1Items.Item
WHERE Completed != '0000-00-00' AND Completed >= '2012-09-25' AND Completed <= '2012-10-25'
GROUP BY WEEK(Completed)
我得到了:
Completed ActivityCount CompletedTimestamp
2012-09-25 300 2012-09-25 00:00:00
2012-10-02 764 2012-10-02 00:00:00
2012-10-08 379 2012-10-08 00:00:00
2012-10-17 659 2012-10-17 00:00:00
2012-10-22 382 2012-10-22 00:00:00
有些人相隔7天,其他人相隔6天,其他人则是5天......其中一人是9天?
为什么它会按如此奇怪的间隔而不是仅仅7天对日期进行分组?
答案 0 :(得分:1)
week
函数不计算日期的差异。
week
函数返回日期的周数。如果你按它分组,那么在该组中将是在一周的开始和结束时以及之间的日期。单个日期之间的差异可能大于7天或更短。
答案 1 :(得分:0)
juergen d提到的答案是汇总日期列 - 使用最小值或最大值,具体取决于您是否希望将一周的第一天或最后一天用作一致的间隔; e.g:
SELECT MIN(已完成),COUNT(DISTINCT Table1.ID)AS ActivityCount FROM Table1 JOIN Table1Items ON Table1.ID = Table1Items.ID JOIN database_database.Table2 ON Table2.Item = Table1Items.Item WHERE Completed!='0000-00 -00'与完成&gt; ='2012-09-25'并完成&lt; ='2012-10-25'每周一组(已完成)