rails,group for average,然后再次组合sum(rails, group for average and then group again for sum)
示例:一个表,每隔几分钟就会节省一次功耗。
我正在尝试使用groupdate gem来处理这些数据:
@kWh = Consumption.group_by_hour(:at).average(:kw) @kWh_per_day = @kWh.group_by_day(:at).sum(:average_kw)对于第二行,我收到一个错误:“没有给出块”
任何正确方向的推动都将受到赞赏。
Example: a table, in which the power consumption is saved every few minutes.
What i am trying to do with this data using the groupdate gem:
@kWh = Consumption.group_by_hour(:at).average(:kw) @kWh_per_day = @kWh.group_by_day(:at).sum(:average_kw)For the second line I get an error: "no block given"
Any push in the right direction would be appreciated.
最满意答案
......最终有效的是什么,虽然它看起来不是很强烈:
@kWh = Consumption.group_by_hour(:at).average(:kw) @kWh_per_day = Hash [@kWh.group_by_day { |h| h[0] }.map { |k,v| [k, v.map { |j| j[1] }.reduce(:+)] } ]... what finally worked, though it doesn't look very elegeant:
@kWh = Consumption.group_by_hour(:at).average(:kw) @kWh_per_day = Hash [@kWh.group_by_day { |h| h[0] }.map { |k,v| [k, v.map { |j| j[1] }.reduce(:+)] } ]更多推荐
发布评论