2015-11-17 136 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)