Reference documentation and code samples for the Firestore v1 API class StructuredAggregationQuery.Types.Aggregation.Types.Sum.
Sum of the values of the requested field.
Only numeric values will be aggregated. All non-numeric values
including NULL are skipped.
If the aggregated values contain NaN, returns NaN. Infinity math
follows IEEE-754 standards.
If the aggregated value set is empty, returns 0.
Returns a 64-bit integer if all aggregated numbers are integers and the
sum result does not overflow. Otherwise, the result is returned as a
double. Note that even if all the aggregated values are integers, the
result is returned as a double if it cannot fit within a 64-bit signed
integer. When this occurs, the returned value will lose precision.
When underflow occurs, floating-point aggregation is non-deterministic.
This means that running the same query repeatedly without any changes to
the underlying values could produce slightly different results each
time. In those cases, values should be stored as integers over
floating-point numbers.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe latest version of the \u003ccode\u003eStructuredAggregationQuery.Types.Aggregation.Types.Sum\u003c/code\u003e class is 3.10.0, with documentation available for versions back to 2.3.0.\u003c/p\u003e\n"],["\u003cp\u003eThis class is designed for calculating the sum of numeric values within a specified field, skipping non-numeric entries, and returning \u003ccode\u003eNaN\u003c/code\u003e if \u003ccode\u003eNaN\u003c/code\u003e is present in the aggregated values.\u003c/p\u003e\n"],["\u003cp\u003eThe result of the aggregation is returned as a 64-bit integer if all values are integers and the sum does not overflow, otherwise a double is returned.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eStructuredAggregationQuery.Types.Aggregation.Types.Sum\u003c/code\u003e class inherits from \u003ccode\u003eobject\u003c/code\u003e and implements multiple interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, offering functionalities like deep cloning and message handling.\u003c/p\u003e\n"],["\u003cp\u003eThe class provides two constructors, one default and one that accepts another \u003ccode\u003eSum\u003c/code\u003e object for initialization, and it also allows setting the field to be aggregated through the \u003ccode\u003eField\u003c/code\u003e property.\u003c/p\u003e\n"]]],[],null,[]]