Detta borde avslöja allt
SELECT 4=4, 3=4, 1 or null, 0 or null
Utdata
1 | 0 | 1 | NULL
Fakta
-
COUNT lägger ihop kolumnerna/uttrycken som evalueras till NOT NULL. Allt kommer att öka med 1, så länge det inte är null. Undantaget är COUNT(DISTINCT) där det endast ökar om det inte redan har räknats.
-
När ett BOOLEAN-uttryck används ensamt, returnerar det antingen 1 eller 0.
-
När en boolean är
OR
-ed med NULL, är det NULL endast när det är 0 (falskt)
Till andra
Ja om antalet är den ENDA kolumn som önskas kan man använda WHERE value=4
men om det är en fråga som vill räkna 4:orna och hämtar andra räkningar/aggregat, då fungerar inte filtret. Ett alternativ skulle ha varit SUM(value=4)
, t.ex.
SELECT sum(value=4)
FROM test