2

Rails3のアクティブレコードで次のSQLを複製しようとしていますが、これまでに見つけたものは何もありません。だから、どんな助けもいただければ幸いです。

SELECT AVG(DAILY_AVG) FROM (
    SELECT user_code, (COUNT(actioned_at) / 200) as DAILY_AVG
    FROM transactions
    GROUP BY user_code
) TMP

私は現在...connection.select_value(sql)を使用してこれを直接実行していますが、これを実行するアクティブレコードの方法を本当に理解したいと思います。

4

1 に答える 1

0

内部クエリは次のように記述できます。

Transaction.group(:user_code).select("COUNT(actioned_at) / 200 AS daily_avg")

そして、これをネストして平均を取得するには、次のようにします。

Transaction.select("AVG(daily_avg)").from(Transaction.group(:user_code).select("COUNT(actioned_at) / 200 AS daily_avg"))[0].avg.to_f
于 2015-05-21T01:44:39.473 に答える