[英]Group by week returning strange intervals
由於某些奇怪的原因,group by week返回帶有datetime字段的奇數日期間隔。
“已完成”是一個日期時間字段,使用以下查詢:
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天分組?
week
功能不計算日期差。
week
函數返回日期的周數。 如果按其分組,則分組中的日期將是一周的開始和結束以及之間的日期。 單個日期之間的差異可以大於7天或更短。
正如juergen d所暗示的,答案是匯總date列-使用min或max取決於您是否希望將一周的第一天或最后一天用作一致間隔; 例如:
SELECT MIN(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完成!='0000-00-00' AND已完成> ='2012-09-25'AND已完成<='2012-10-25'GROUP BY WEEK(已完成)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.