如何按日分组和postgres的总和?

时间:2015-11-17 12:27:41

标签: ruby-on-rails postgresql

我得到了这个模型:

[#<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 个答案:

答案 0 :(得分:3)

我认为你可以这样做:

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