[英]How to search across fields for a range of optional values using ActiveRecord in Ruby?
[英]How to group by a range of values in ActiveRecord (ruby on rails)?
我有一個ActiveRecord模型,它有兩列我想要分組和總和(兩者都是整數)。 我似乎無法解決的問題是如何將第一列匯總為第二列的組,第二列按范圍分組。
我知道我可以做Model.sum(:first_column,group :: second_column),但這會產生很多組,因為第二列的值是分散的。 如何對第二列的值進行分組,例如在10(0-9,10-19,20-29等)的范圍內?
您可以在SQL中使用GROUP BY表達式,而不必將GROUP BY作為一個列。 你可以做這樣的事情:
Model.sum(:first_column, :group => 'second_column / 10')
或者像這樣:
Model.group('second_column / 10').sum(:first_column)
這兩個都應該將這樣的SQL發送到數據庫中:
select sum(first_column), second_column / 10
from models
group by second_column / 10
將有別名,引用,......但效果將是相同的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.