Dette burde afsløre alt
SELECT 4=4, 3=4, 1 or null, 0 or null
Output
1 | 0 | 1 | NULL
Fakta
-
COUNT summerer de kolonner/udtryk, der evalueres til IKKE NULL. Alt vil stige med 1, så længe det ikke er nul. Undtagelsen er COUNT(DISTINCT), hvor den kun stiger, hvis den ikke allerede er talt.
-
Når et BOOLEAN-udtryk bruges alene, returnerer det enten 1 eller 0.
-
Når en boolean er
OR
-ed med NULL, er det kun NULL, når det er 0 (falsk)
Til andre
Ja, hvis antallet er den ENESTE ønskede kolonne, kunne man bruge WHERE value=4
men hvis det er en forespørgsel, der ønsker at tælle 4'erne såvel som henter andre tællinger/aggregater, så virker filteret ikke. Et alternativ ville have været SUM(value=4)
, f.eks.
SELECT sum(value=4)
FROM test