3
我有一個作業表,並且正試圖獲得不同時間範圍內作業的計數。我當前的查詢看起來是這樣的:在按列分組時選擇零計數
SELECT COUNT(*) AS 'count',
WEEK(j.created_at) AS 'week',
MONTH(j.created_at) AS 'month',
YEAR(j.created_at) AS 'year',
DATE_FORMAT(j.created_at, '%y') AS 'short_year'
FROM jobs j WHERE j.state <> 'draft'
AND created_at > '2010-06-21'
AND created_at < '2010-08-01'
GROUP BY WEEK(j.created_at)
ORDER BY WEEK(j.created_at)
要改變我的時間表,我簡單地改變從WEEK
的GROUP BY
到MONTH
,我按月而不是每週得到計數。
問題是,我沒有獲得0個工作周的空行。我的結果從上面的查詢設置爲:
count week month year short_year
3 25 6 2010 10
2 26 6 2010 10
2 27 7 2010 10
1 28 7 2010 10
3 30 7 2010 10
你會發現,沒有數據的第29周,這應該是與計數行(0)。有沒有辦法獲得0計數行,同時保持在WEEK
和MONTH
之間更改我的分組的靈活性?
我們沒有與這樣的數據日曆表,創建一個需要對應用程序的數據結構進行重大更改,而我沒有時間實施。如果我將所有'c.date'更改爲'c.created_at',並且使用'jobs'而不是'calendar',它將返回與我原始查詢相同的數據集。 – 2010-09-29 18:36:44
您需要**首先創建**輔助日曆表。 – 2010-09-29 18:38:14
看到我上面修改的評論。這將對Rails應用程序服務這些數據發生大量更改,並且我沒有時間來實現這些更改。 – 2010-09-29 18:38:53