分组并计算活动记录Rails

时间:2014-06-02 02:03:33

标签: ruby-on-rails ruby

我有两个表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;

2 个答案:

答案 0 :(得分:2)

假设您在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")

答案 1 :(得分:0)

最明确的方法可能是使用find_by_sqldocs here):

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")