CORR: from Tableau to SQL

Returns the Pearson correlation of complete numeric pairs. Below, 8 sample rows go through the calculation and through the SQL, and both return the same numbers.

Calculated field

CORR([amount], [other])

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 corr(amount,other) AS result FROM input

Runs the example above.

Result

result
0.94417

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

Where a naive translation goes wrong

  • Replacing missing observations with zero changes the aggregate.

    Naive SQL

    SELECT corr(coalesce(amount,0),coalesce(other,0)) AS result FROM input
    result
    0.720132

    Matches the calculation

    SELECT corr(amount,other) AS result FROM input
    result
    0.94417

Signature

CORR(number, number)