ruby-on-rails - maximum in group by 事件记录查询

标签 ruby-on-rails ruby-on-rails-3 activerecord max

我有一个具有两个属性的模型(我只显示两个,因为只需要这两列)

我的模型


place_id ---------------------- user_id

1 -------------------------------- 1

1 ------------------------------ 2

1 ------------------------------ 2

3 ---------------------------------- 3

3 ------------------------------ 2

3 ---------------------------------- 3

3 ------------------------------ 1

我想按最大记录获取分组。基本上我想获取用户拥有最大记录的特定位置,例如 place_id 1 用户 2 具有最大结果,位置 3 用户 3 具有最大结果。

最佳答案

如果您首先指定一个地点,您可以这样做:

MyModel.where("place_id=?",place_id).
        group("place_id,user_id").order("count(user_id) DESC").first

如果您想一次获得所有最大值,则删除 where 子句并遍历您的结果集,只获取每个不同 place_id 的第一条记录。或者,您可以在上面的语句中添加一个 distinct。是这样的吗?

MyModel.select("DISTINCT(place_id)").
        merge(MyModel.group("place_id,user_id").order("count(user_id) DESC"))

祝你好运!

关于ruby-on-rails - maximum in group by 事件记录查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6468316/

相关文章:

ruby-on-rails - 即使清除缓存后,Favicon 也不会在生产中显示

ruby-on-rails-4 - Rails : Activerecord : How to send params for I18n message inside errors. 添加自定义验证

ruby-on-rails - ActiveRecord::StatementInvalid: PG::UndefinedTable: 错误: 关系 "users"不存在

mysql - ThinkingSphinx 匹配精确短语

ruby-on-rails - 使用 Rails 中缺少的方法

ruby-on-rails - 如何从 IRB 运行 .rb 文件?

ruby-on-rails - rake Assets :precompile aborting, 无法推送到 heroku

html - Rails 中的 Mailer 中的图像/CSS 不仅适用于 Gmail

javascript - 在 Rails 6 中安装 JS 第三方库(如 QuillJS)有统一的方法吗?

sql - 两个表都需要使用 "where"进行 RoR 表连接