2015-05-29 56 views
0

我有一個hstore列的表。我需要做的是將特定hstore鍵的所有條目都修飾一下。Rails總和查詢與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列。 我想要的是查找特定日期的每個記錄值1的總和。 到目前爲止,我得到:

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) 

有沒有人有一個好主意,如何做到這一點?得到它

更新工作,並具:

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

從哪裏'日期'來?那些「日期」會是輸入嗎? –

+0

日期是一組日期。例如[「2015年1月25日」,「2015年1月26日」,「2015年1月27日」,「28/01/2015」] – Mischa

回答

1

你應該這樣做:

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現在擁有的所有記錄value1總和/每天。

+0

它沒有工作我們完全一樣,但我得到工作,在我的文章中更新。謝謝 – Mischa