Rails 使用 hstore 求和查询

Rails sum query with hstore

我有一个带有 hstore 列的 table。我需要做的是汇总特定 hstore 键的所有条目。

一条统计记录如下所示:

 id: 2041,
 tenant_name: "isabela",
 totals:
 {"value1"=>"31",
 "value2"=>"21",
 "value3"=>"38",
 "value4"=>"28",
 "value5"=>"0"},
 created_at: Tue, 05 May 2015 23:31:01 UTC +00:00,
 updated_at: Tue, 05 May 2015 23:31:01 UTC +00:00>,

总计是 hstore 列。 我想要的是找到特定日期的每个记录 value1 的总和。 到目前为止我得到了:

string = [];
dates.each do |date|
  count = Stat.where(created_at: DateTime.parse(date).midnight..DateTime.parse(date).midnight + 1.day))
  string.push(count)
end
//(dates = an array of dates)

有人知道怎么做吗?

update 可以使用:

.sum("(totals->'value1')::integer")

你应该这样做:

sums = dates.map do |date|
  Stat.where(created_at: DateTime.parse(date).midnight..DateTime.parse(date).midnight + 1.day))
      .sum("totals->'value1'::integer")
end

sums 现在保存所有 records/per 天的 value1 的总和。