rails活动记录分组范围

时间:2012-08-28 11:28:35

标签: ruby-on-rails-3 activerecord grouping

我的用户模型中包含质量字段。该字段的数据类型为float。

现在我想根据质量范围对所有用户进行分组,如下所示

[65 - 75],[75 - 85], [85 - 95] and [95 - 100]

注意:我希望所有用户在一个组中的质量形式为65到75,在另一个组中为75-85。

如何使用ActiveRecord实现此目的。

由于

2 个答案:

答案 0 :(得分:-1)

您可以使用group的{​​{1}}和having函数,这样:

ActiveRecord

答案 1 :(得分:-1)

User.where(:quality => (65..75))
User.where(:quality => (75..85))
User.where(:quality => (85..95))
User.where(:quality => (95..100))

或者,如果您想要单个查询,则有3个选项:

  • 使用字符串形式

    User.where("(quality >= 65 AND quality <= 75) OR (quality >= 75 AND quality <= 85) OR (quality >= 85 AND quality <= 95) OR (quality >= 95 AND quality <= 100)").group(:quality)
    
  • 使用OR子句或

  • 编写SQL
  • 使用ARel gem。