LoginSignup
54
59

More than 3 years have passed since last update.

【Rails】カラムの合計値を求める!

Last updated at Posted at 2019-07-01

やりたいこと

保存されているデータの特定のカラムの合計値を出したい!と思いました。
最初考えたのは、

①取得したいカラムのモデルをeach文で1件ずつ取得し、そのデータのカラムを一度配列にする
②↑の配列に対してsumメソッドで合計を求める

これでも全然問題なかったのですが、
sumメソッドの引数で直接カラム名を指定し、合計値を求めることも出来ると知ったのでまとめます!

カラムの合計を求める方法①

これは私がもともと考えていたやり方です。

test.rb
#booksテーブルのpriceカラムの合計値を求めたい場合
array = [] #空の配列を用意し、
Book.all.each do |book|
  array << book.price 
  #bookテーブルのレコードを1件ずつ取り出し、priceカラムのデータを配列に入れる
end
array.sum #ここで合計を求める

カラムの合計を求める方法②

次に、もっと簡単な1行でできるやり方です。

test.rb
Book.all.sum(:price)

これだけでいけました。
sumメソッドの引数でカラムを指定できるとは知らなかったです!
とても楽ですね:relaxed:

また、さらにオプションを付けることもできます!
興味のある方はぜひこちらのサイトをご参考ください!
http://railsdoc.com/references/sum

54
59
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
59