COUNT(*)
telt alle rijen in de resultatenset (of groep als GROUP BY wordt gebruikt).COUNT(column_name)
telt alleen die rijen waarcolumn_name
is niet nul. Dit kan in sommige situaties langzamer zijn, zelfs als er geen NULL-waarden zijn, omdat de waarde moet worden gecontroleerd (tenzij de kolom niet nullable is).COUNT(1)
is hetzelfde alsCOUNT(*)
aangezien 1 nooit NULL kan zijn.
Om het verschil in de resultaten te zien, kunt u dit kleine experiment proberen:
CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);
SELECT
COUNT(*) AS a,
COUNT(x) AS b,
COUNT(1) AS c
FROM table1;
Resultaat:
a b c 3 2 3