繁体   English   中英

分组并计数活动记录Rails

[英]Group and count active record Rails

我有两个表, usersvotations ,在投票中有两个字段win_iduser_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_sqldocs在这里 ):

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM