module ActiveRecord::Calculations

def sum(identity_or_column = nil, &block)

Person.sum(:age) # => 4562

#calculate for examples with options.
with the same data type of the column, +0+ if there's no row. See
Calculates the sum of values on a given column. The value is returned
def sum(identity_or_column = nil, &block)
  if block_given?
    values = map(&block)
    if identity_or_column.nil? && (values.first.is_a?(Numeric) || values.first(1) == [] || values.first.respond_to?(:coerce))
      identity_or_column = 0
    end
    if identity_or_column.nil?
      ActiveSupport::Deprecation.warn(<<-MSG.squish)
        Rails 7.0 has deprecated Enumerable.sum in favor of Ruby's native implementation available since 2.4.
        Sum of non-numeric elements requires an initial argument.
      MSG
      values.inject(:+) || 0
    else
      values.sum(identity_or_column)
    end
  else
    calculate(:sum, identity_or_column)
  end
end