Sql 如何在ActiveRecord(RubyonRails)中按一系列值进行分组?
我有一个ActiveRecord模型,它有两列我想要分组和求和(都是整数)。我似乎无法解决的问题是如何将第一列作为第二列的一组求和,第二列按范围分组Sql 如何在ActiveRecord(RubyonRails)中按一系列值进行分组?,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,我有一个ActiveRecord模型,它有两列我想要分组和求和(都是整数)。我似乎无法解决的问题是如何将第一列作为第二列的一组求和,第二列按范围分组 我知道我可以做Model.sum(:first_column,group::second_column),但这会导致许多组,因为第二列的值是分散的。如何对第二列的值进行分组,例如在10(0-9、10-19、20-29等)的范围内?您可以在SQL中按表达式分组,而不必只按列分组。您可以这样做: Model.sum(:first_column, :gr
我知道我可以做Model.sum(:first_column,group::second_column),但这会导致许多组,因为第二列的值是分散的。如何对第二列的值进行分组,例如在10(0-9、10-19、20-29等)的范围内?您可以在SQL中按表达式分组,而不必只按列分组。您可以这样做:
Model.sum(:first_column, :group => 'second_column / 10')
Model.group('second_column / 10').sum(:first_column)
或者像这样:
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
将有别名,引用。。。但是效果是一样的。您可以在SQL中按表达式分组,而不必只按列分组。您可以这样做:
Model.sum(:first_column, :group => 'second_column / 10')
Model.group('second_column / 10').sum(:first_column)
或者像这样:
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
将有别名,引用。。。但是效果是一样的。太棒了——我没意识到我可以用一个表情来分组。谢谢太棒了-没想到我可以用一个表情来分组。谢谢