foo,foo_bar表示为ActiveModel类
create table foo (id, captured_date)
create table foo_bars (id, foo_id, val1, val2)
insert into foo (1, '2012-11-01')
insert into foo (2, '2012-11-02')
insert into foo_bars (1, 1, 1, 1)
insert into foo_bars (1, 1, 2, 2)
insert into foo_bars (1, 2, 3, 3)
insert into foo_bars (1, 2, 4, 4)
我希望在表格中显示以下内容(日期,总和(val1),平均值(val2))
2012-11-01 3 1.5
2012-11-02 7 3.5
_________________
10 2.5
_________________
以上是日期的总和(val1),avg(val2)
在视图中使用AR查询实现此目的的最简单方法是什么。我的视图代码应该如何以及我应该使用哪些查询。
答案 0 :(得分:2)
使用
select("date, SUM(val1) as sum_val1").group("date").pluck(:date, :sum_val1)
您将只获得一系列总和。您可以根据需要添加字段。 另一个人提到的解决方案并不是那么好,因为它在Ruby中的总和不在SQL中。 要显示它真的很简单,它只是一个数组!显示<%= result.inspect%>从那里开始。
答案 1 :(得分:0)
试试这个
总和
FooBar.sum(:val1)
或者如果你想传递条件
FooBar.where("foo_id = ? ", foo_id).sum(:val1)
或者如果view
中有对象,则可以执行
例如
@foobars.sum(:val1)
for avarage
FooBar.average(:val1)