patternMajor
Does `COUNT` discard duplicates?
Viewed 0 times
countdiscardduplicatesdoes
Problem
My professor taught me this SQL statement:
will return
She justified it by saying that
SELECT COUNT(length) FROM productwill return
2 with the following dataset:product
|id | length | code |
|-------------------|
| 1 | 11 | X00 |
| 2 | 11 | C02 |
| 3 | 40 | A31 |She justified it by saying that
COUNT doesn't count duplicates. I disagreed. After trying a lot of DBMS, I've never found one that has this behaviour. Does such an DBMS exist?Solution
Either your professor made a mistake or you misunderstood what she said. In the context of relational DBMSes, as implemented by various vendors, the aggregate function
COUNT() returns the number of non-NULL values of ` in the result set (or a group).
There is a special case of COUNT(*), which returns the number of rows in the result set or group, not the number of values of anything. This is equivalent to COUNT(), such as COUNT(1).
Many databases support COUNT(DISTINCT ), which will return the number of unique values of `.Context
StackExchange Database Administrators Q#182420, answer score: 46
Revisions (0)
No revisions yet.