SUM: from Tableau to SQL

Returns the sum of non-null values. Below, 8 sample rows go through the calculation and through the SQL, and both return the same numbers.

Calculated field

SUM([amount])

Sample data

idamountunitsscoreother
1-2.52-0.83
20004
31.530.252
4440.58
5950.811
6166114
7null7null9
848-0.5null

The same calculation as SQL

SELECT sum(amount) AS result FROM input

Runs the example above.

Result

result
32

Same rows from the calculation and from the SQL in DuckDB.

Where a naive translation goes wrong

  • Filtering out zero and negative observations can change the aggregate.

    Naive SQL

    SELECT sum(amount) FILTER (WHERE amount>0) AS result FROM input
    result
    34.5

    Matches the calculation

    SELECT sum(amount) AS result FROM input
    result
    32

Signature

SUM(number)