簡體   English   中英

如何按ActiveRecord中的一系列值進行分組(ruby on rails)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM