instance method
sum
Ruby on Rails 8.0.4
Since v3.0.20Signature
sum(initial_value_or_column = 0, &block)
Calculates the sum of values on a given column. The value is returned with the same data type of the column, 0 if there’s no row. See #calculate for examples with options.
Person.sum(:age) # => 4562
When given a block, calls the block with each record in the relation and returns the sum of initial_value_or_column plus the block return values:
Person.sum { |person| person.age } # => 4562 Person.sum(1000) { |person| person.age } # => 5562
If the relation hasn’t been loaded yet, calling sum with a block will load all records in the relation. If there are a lot of records in the relation, loading all records could result in performance issues.
Parameters
-
initial_value_or_columnopt = 0 -
blockblock
Source
# File activerecord/lib/active_record/relation/calculations.rb, line 171
def sum(initial_value_or_column = 0, &block)
if block_given?
map(&block).sum(initial_value_or_column)
else
calculate(:sum, initial_value_or_column)
end
end
Defined in activerecord/lib/active_record/relation/calculations.rb line 171
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Calculations