Rails中的嵌套聚合函数

时间:2012-08-13 13:45:47

标签: ruby-on-rails postgresql nested aggregate-functions

如何在Rails中执行此操作?:

select avg(cnt)
from
(
    select
        count(*) as cnt
    from
        sngs s
        inner join clbs c on c.id = s.clb_id
    where
        c.user_id = 35
    group by
        date(s.record_date)
) sc

该行

current_user.sngs.joins(:clb).average(“count(*)”,group:“date(record_date)”)

给出错误:

PG ::错误:错误:聚合函数调用无法嵌套LINE 1:SELECT AVG(count(*)).............

1 个答案:

答案 0 :(得分:1)

没有测试它,但也许它看起来像这样:

Sng.joins(:clbs).where("clbs.user_id = 35").group(:record_date).average

您应该查看Rails指南中的ActiveRecord查询界面。 http://guides.rubyonrails.org/active_record_querying.html
此链接解释了您应该用于查询的许多方法。

修改

查看countaveragehavinggroup并一起查看所有这些内容。