計數統計我有一個表的模型圖:生成按小時,天,月,年
View(id: integer, created_at: datetime)
我想一定時間內產生每小時,天,月或年觀看次數的時間在圖表上使用它們。我已經在做這樣的事情:
View.group('DATE(views.created_at)')
.select("*, count(*) AS series_count, DATE(views.created_at) AS series_time")
.where(:created_at => (Time.now-7.days)..Time.now)
這導致:
2012-06-16 => 20
2012-06-17 => 12
2012-06-18 => 15
2012-06-20 => 38 # Issue: Didn't include a day with no records
2012-06-21 => 11
2012-06-22 => 76
的第一個問題是,它不添加填充到subtitute幾天或者幾個月或者沒有任何記錄。
第二個問題是,有時它增加了另一天導致8天!
第三個問題是,當我嘗試顯示每小時和其他時間週期的計數時,它會變得非常棘手,有人可以提出一個更好的解決方案,適用於其他日間循環嗎?
基本上我做的是被包含在所有的模型一樣方便統計生成模塊時間表:
include Timeline # on the model
Model.timeline(
:time_column => :created_at,
:period => (Time.now-24.hours)..Time.now,
:by => :hours
)
謝謝!
請指定您的DBMS。它是Postgres? – hgmnz 2012-07-17 18:13:33
@hgimenez這是MySQL – Ryan 2012-07-17 20:16:44