首页 文章

Rails中的嵌套聚合函数

提问于
浏览
0

如何在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::Error: ERROR: aggregate function calls cannot be nested LINE 1: SELECT AVG(count(*)) .............

1 回答

  • 1

    didn't test 它,但也许它看起来像这样:

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

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

    EDIT

    看看 countaveragehavinggroup 并将它们全部链接在一起 .

相关问题