HiveBrain v1.2.0
Get Started
← Back to all entries
patternMajor

Does `COUNT` discard duplicates?

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
countdiscardduplicatesdoes

Problem

My professor taught me this SQL statement:

SELECT COUNT(length) FROM product


will 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.