Railsで集計処理を実装

INDEX PAGE

Railsで集計処理を実装



蓄積したデータの合計や平均などを求めたいなどというとき
SQLで「Group By」を使用しますが
Railsではこのような場合にはActiveRecord::Calculationsを利用するようです。
http://api.rubyonrails.org/classes/ActiveRecord/Calculations/ClassMethods.html


こちらのモジュールの使い方ですが
まずはこれを利用したいエンティティーに対応したModelクラスに
このモジュールをミックスインします。

class HogeHoge < ActiveRecord::Base
include ActiveRecord::Calculations

end

こうすると、このモデルクラスで下のような関数が利用できるようになります。

  • average :平均値を求める
  • count :カウント
  • maximum :最大値
  • minimum :最小値
  • sum :集計値


これを使って集計を行ってみる例がこんな感じです。
HogeHogeエンティティの「hoge_age」が30以上の「fuga」カラムの集計値が取得できます。

@hoge_sum = HogeHoge.sum(:fuga, :conditions => "hoge_age > 30")

これを利用すればかなり簡単に集計処理がかけます。


INDEX PAGE