我有一个带有质量字段的用户模型。该字段的数据类型是浮点数。
现在我想根据质量范围对所有用户进行分组如下
[65 - 75],[75 - 85], [85 - 95] and [95 - 100]
注意:我希望所有用户的质量表格在一个组中为 65 到 75,在另一组中为 75-85。
如何使用 ActiveRecord 实现这一点。
谢谢
我有一个带有质量字段的用户模型。该字段的数据类型是浮点数。
现在我想根据质量范围对所有用户进行分组如下
[65 - 75],[75 - 85], [85 - 95] and [95 - 100]
注意:我希望所有用户的质量表格在一个组中为 65 到 75,在另一组中为 75-85。
如何使用 ActiveRecord 实现这一点。
谢谢
那么你可以使用group
和这样having
的功能ActiveRecord
:
Model.select(:quality).group(:quality).having("quality > 65 AND quality < 75")
Model.select(:quality).group(:quality).having("quality > 75 AND quality < 85")
Model.select(:quality).group(:quality).having("quality > 85 AND quality < 95")
Model.select(:quality).group(:quality).having("quality > 95 AND quality < 100")
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 或