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: エラー: 集約関数呼び出しはネストできません LINE 1: SELECT AVG(count(*)) .............

4

1 に答える 1

1

はそれをテストしませんでしたが、おそらく次のようになります。

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

ActiveRecordRailsガイドのクエリインターフェースを見てください。http://guides.rubyonrails.org/active_record_querying.html
このリンクでは、このようなクエリに使用する必要のある多くの方法について説明しています。

編集

countaveragehavinggroupおよびそれらすべてをまとめて chaning を見てください。

于 2012-08-13T14:11:43.190 に答える