查询每天布尔列的累积总和

Amb*_*san 5 postgresql activerecord ruby-on-rails ruby-on-rails-4

我一直在尝试每天获得一个布尔列的累积总和.我尝试了不同的方式使用其中任何一个#sum并查看#distinct(通过查看Stack Overflow上的其他帖子)但是无法以我喜欢的哈希方式成功实现这些方法中的任何一个.

目前,这是我的查询:

Device.where(boxed: true).group('date(updated_at)').count
Run Code Online (Sandbox Code Playgroud)

这给了我这个:

{Fri, 17 Apr 2015=>48, Sat, 18 Apr 2015=>44, Sun, 19 Apr 2015=>5, Mon, 20 Apr 2015=>48}
Run Code Online (Sandbox Code Playgroud)

但我希望它看起来像这样:

{Fri, 17 Apr 2015=>48, Sat, 18 Apr 2015=>92, Sun, 19 Apr 2015=>97, Mon, 20 Apr 2015=>145}
Run Code Online (Sandbox Code Playgroud)

我正在使用Rails 4和Postgres.任何帮助,将不胜感激.

编辑:

我最终这样做是为了获得累积总和,尽管这可能不是最好的方式或优雅的:

data_all_time = Device.where(boxed: true).group('date(updated_at)').count 
data_all_time_keys = data_all_time.keys
data_all_time_values = data_all_time.values
sum = 0
data_all_time_values.map!{|x| sum += x}

all_time_sum_tuple = data_all_time_keys.zip(data_all_time_values)
Run Code Online (Sandbox Code Playgroud)

我最终得到这样的东西:

[["April 17, 2015", 48], ["April 18, 2015", 92], ["April 19, 2015", 97], ["April 20, 2015", 145]]
Run Code Online (Sandbox Code Playgroud)

这是有效的,直到我能找到更好的方法.

Tan*_*rix -1

查询布尔列每天的累计和:

Device.where(boxed: true).group('date(updated_at)').sum('date(updated_at)')
Run Code Online (Sandbox Code Playgroud)