2015-11-17 188 views
0

我得到這個模型:如何將日期分組並按日期分組?

[#<Account:0x007fcf32153098 
    id: 1, 
    profit: 100, 
    user_id: 1, 
    created_at: Sun, 15 Nov 2015 02:27:43 UTC +00:00, 
    updated_at: Sun, 15 Nov 2015 02:27:43 UTC +00:00>, 
#<Account:0x007fcf32152df0 
    id: 2, 
    profit: 500, 
    user_id: 1, 
    created_at: Sun, 16 Nov 2015 15:05:07 UTC +00:00, 
    updated_at: Sun, 15 Nov 2015 15:05:07 UTC +00:00>, 
] 

而現在我得到這個給他們組日期:

Account.all.group_by{|a| a.created_at.strftime("%Y-%m-%d")} 

{"2015-11-15"=> 
    [#<Account:0x007fcf3247b1a8 
    id: 1, 
    profit: 100, 
    user_id: 1, 
    created_at: Sun, 15 Nov 2015 02:27:43 UTC +00:00, 
    updated_at: Sun, 15 Nov 2015 02:27:43 UTC +00:00>], 
"2015-11-16"=> 
    [#<Account:0x007fcf3247afc8 
    id: 2, 
    profit: 500, 
    user_id: 1, 
    created_at: Sun, 16 Nov 2015 15:05:07 UTC +00:00, 
    updated_at: Sun, 15 Nov 2015 15:05:07 UTC +00:00>]} 

我的問題是:我怎樣才能將它們分組,並在同一時間總和的利潤如果當天有超過一條記錄,那麼一起嗎?似乎我不能用sum(:profit)與postgres?

回答

1

我認爲你可以做到這一點簡單地用:

Account.order("DATE(created_at)").group("DATE(created_at)").sum(:profit)