Calculated field
COUNTD([amount])
Sample data
| id | amount | units | score | other |
|---|---|---|---|---|
| 1 | -2.5 | 2 | -0.8 | 3 |
| 2 | 0 | 0 | 0 | 4 |
| 3 | 1.5 | 3 | 0.25 | 2 |
| 4 | 4 | 4 | 0.5 | 8 |
| 5 | 9 | 5 | 0.8 | 11 |
| 6 | 16 | 6 | 1 | 14 |
| 7 | null | 7 | null | 9 |
| 8 | 4 | 8 | -0.5 | null |
The same calculation as SQL
SELECT cast(count(DISTINCT amount) AS DOUBLE) AS result FROM input
Runs the example above.
SELECT cast(count(DISTINCT amount) AS DOUBLE) AS result FROM input
Written for this dialect; not run here.
SELECT cast(count(DISTINCT amount) AS FLOAT64) AS result FROM input
Written for this dialect; not run here.
Result
| result |
|---|
| 6 |
Same rows from the calculation and from the SQL in DuckDB.
Where a naive translation goes wrong
- Counting observations retains duplicates instead of counting distinct values.
Naive SQL
SELECT count(amount) AS result FROM input
result 7 Matches the calculation
SELECT cast(count(DISTINCT amount) AS DOUBLE) AS result FROM input
result 6
Signature
COUNTD(expression)