rails,activerecord sum然后命令

git*_*tic 4 ruby activerecord ruby-on-rails associations

我有一个属于用户的工作模型和用户has_many工作.我想创建一个AR查询,计算每个用户的工作日总数,然后按降序排序.

到目前为止我有这个,但是给了我一个错误:(列"Job.id"必须出现在GROUP BY子句中或用在聚合函数中)

@work_days = Job.group(:user).order('SUM(total_days)')
Run Code Online (Sandbox Code Playgroud)

我似乎无法使用.order方法工作 - 我有什么遗漏的吗?提前致谢!

Aru*_*hit 9

你可以写下你的查询: -

Job.group(:user_id).select('SUM(total_days) as tot').order('tot desc')
Run Code Online (Sandbox Code Playgroud)


Pri*_*ain 6

与之前略有不同

Job.group(:user_id).order('sum_total_days DESC').sum(:total_days)
Run Code Online (Sandbox Code Playgroud)