【问题标题】:如何从 Post 获取唯一的 user_id
【发布时间】:2022-01-23 07:22:20
【问题描述】:

如何从表中的列中获取唯一值?例如,我有这个 Products 表:

user_id  number
1          900
1          400
2          100
2          300
3          200

这里我用了....

like so Post.order(number: :desc).limit(3).each do |p| > 我来了

  user_id number
  1        900
  1        400
  2        300

like so 在这里,我希望“user_id”不要重叠。像这样 f

    user_id number
       1      900
       2      300
       3      200

【问题讨论】:

  • distinct添加到查询中或按user_id使用组,如果您想要numer列数据,则对数字求和

标签: ruby-on-rails unique


【解决方案1】:

按照 deepak 的建议,您可以使用 distinct。

但是,我想您需要从具有相同 user_id 的所有记录中获取最大值?然后您需要使用 sql 按 user_id 对值进行分组并从中选择最大值。在 Rails 中可能是这样的。我不能告诉你它肯定会起作用,因为不记得输出,相信它是哈希数组,它可能会抛出你没有使用其他字段的错误:

Post.group(:user_id).max(:value)

这是 SQL 等价的:

SELECT user_id, MAX(value) FROM posts GROUP BY user_id

【讨论】:

  • 我只想排名第一、第二和第三。
猜你喜欢
  • 2017-12-24
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-07-05
  • 1970-01-01
相关资源
最近更新 更多