COUNT(*)
tæller alle rækker i resultatsættet (eller gruppen, hvis der bruges GROUP BY).COUNT(column_name)
tæller kun de rækker, hvorcolumn_name
er IKKE NULL. Dette kan være langsommere i nogle situationer, selvom der ikke er nogen NULL-værdier, fordi værdien skal kontrolleres (medmindre kolonnen ikke kan nulstilles).COUNT(1)
er det samme somCOUNT(*)
da 1 aldrig kan være NULL.
For at se forskellen i resultaterne kan du prøve dette lille eksperiment:
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;
Resultat:
a b c 3 2 3