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
的总和。
我有一个带有 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
的总和。