2010-05-16 52 views
0

以填充缺失的日期通過類似的問答閱讀/因爲我還沒有找到我正在尋找的解決方案。我的表中的數據是依日期(時間戳),並返回統計數,例如結果:在使用GROUP BY DATE(table.timestamp)時未使用臨時表加入

[timestamp] => 2010-05-12 20:18:36 
[count] => 10 


[timestamp] => 2010-05-14 10:10:10 
[count] => 8 

,不使用臨時表,或日曆表是有辦法來填補那些失蹤的日期?以便相同的表格數據將返回:

[timestamp] => 2010-05-12 20:18:36 
[count] => 10 


/** 
* I would like to have this row added: 
*/ 
[timestamp] => 2010-05-13 00:00:00 
[count] => 0 

[timestamp] => 2010-05-14 10:10:10 
[count] => 8 

謝謝!

+0

可能重複[MySQL:選擇範圍內的所有日期,即使沒有記錄存在](http://stackoverflow.com/questions/1046865/mysql-select-all-dates-in-a-range-even-如果沒有記錄存在) – 2010-05-16 16:28:39

回答

0

我沒有找到我正在尋找的確切解決方案,但我認爲找到了一種足以滿足我需求的方法。我創建了一個流量表,當天的第一位訪問者將觸發一天的行插入,現在我可以加入此表以獲取任何日常記錄。但唯一的問題是,如果一天中沒有流量,那麼表格中就不存在該日期。這可以通過運行每日cron來插入一個新行來解決。

0

解決此問題的最佳方法是在客戶端找到缺少的結果,並在呈現結果時添加它們。

+0

你能指點我的方向爲PHP的東西? – twmulloy 2010-05-16 16:28:50

0

您應該創建一個計數表(只有1列:日期),並預先填寫。 您可以運行一個cron腳本來填充1年,並且每年運行一次。