我想從某個時間段(比如一週)獲取註冊數量,這並不難,但我想知道是否它無論如何,MySQL可以在沒有註冊的日子裏返回零。如何在沒有統計的日子裏從Mysql獲取數據
一個例子: DATA:
ID_Profile datCreate 1 2009-02-25 16:45:58 2 2009-02-25 16:45:58 3 2009-02-25 16:45:58 4 2009-02-26 10:23:39 5 2009-02-27 15:07:56 6 2009-03-05 11:57:30
SQL:
SELECT DAY(datCreate) as RegistrationDate, COUNT(ID_Profile) as NumberOfRegistrations FROM tbl_profile WHERE DATE(datCreate) > DATE_SUB(CURDATE(),INTERVAL 9 DAY) GROUP BY RegistrationDate ORDER BY datCreate ASC;
在這種情況下,結果將是:
RegistrationDate NumberOfRegistrations 25 3 26 1 27 1 5 1
很顯然,我失蹤了兩天在之間。目前我正在用我的php代碼解決這個問題,但是我想知道MySQL是否有辦法自動爲缺失的日期/行返回0。這將是理想的結果:
RegistrationDate NumberOfRegistrations 25 3 26 1 27 1 28 0 1 0 2 0 3 0 4 0 5 1
這樣我們就可以使用MySQL來解決有關的天數在一個月,而不是依賴於PHP代碼的任何問題,來計算每月多少天有,因爲MySQL有這個功能的版本。提前
@保羅 - 你打敗了我。有沒有一種方法可以定義默認值爲零,以便在沒有數據的日子裏,左連接將爲零而不是空值? – 2009-03-05 13:36:03