[英]Group and count active record Rails
我有两个表, users
和votations
,在投票中有两个字段win_id
和user_id
。 我需要在活动记录中使用win_id
(投票)和id
(用户)创建查询。
我的SQL查询是这样的: Select users.name, Count(votations.win_id) from votations Inner Join users ON vontations.win_id = users.id Group By users.name;
假设您在Violation
具有这样的关联:
belongs_to :user, foreign_key: "win_id"
然后应该这样做:
Violation.joins(:user).group("users.name").count
它将为您提供一个散列,其中用户名为键,计数为值。
如果您没有该关联并且不想要它,则将joins()
更改为此:
joins("JOIN users ON violations.win_id = users.id")
最简单的方法可能是只使用find_by_sql
( docs在这里 ):
User.find_by_sql("Select users.name, Count(votations.win_id) from votations Inner Join users ON vontations.win_id = users.id Group By users.name")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.