ユーザごとに has_many でもっている位置の平均値をとりたいのですが
@statistics = User.joins('LEFT OUTER JOIN user_action') .group(:user_id) .select('IFNULL(sum(x), 0) as x_sum') .select('IFNULL(sum(y), 0) as y_sum') .select('IFNULL(count(user_id), 0) as user_count')
ここまでは表示できるのですが
.select('CASE WHEN user_count = 0 THEN 0 ELSE x_sum / user_count END as x_avg')
を追加すると
Mysql2::Error: Unknown column 'user_count' in 'field list': ...
とエラーになってしまいます
SQL を直接書くときは select を外にもう1段かけば内側の as で定義した変数にはアクセスできると思うんですが
active record でこういう場合どのようにかけばいいんでしょうか
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/05/17 10:20