2012-11-17 21 views
1

我有一個ActiveRecord模型,有兩列我想分組和總結(都是整數)。我似乎無法解決的問題是如何總結第一列作爲第二列的組,第二列按範圍分組。如何按ActiveRecord中的一系列值進行分組(Ruby on Rails)?

我知道我可以做Model.sum(:first_column,group :: second_column),但是這會導致很多組,因爲第二列的值是分開的。如何將第二列的值分組,例如在10(0-9,10-19,20-29等)的範圍內?

回答

3

您可以在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 

將有別名,引用,...但效果將是相同的。

+0

太棒了 - 沒有意識到我可以通過表達來分組。謝謝! –

相關問題