Basis van databases
De kolom Punten van de tabel Resultaat bevat zes waarden: 50, NULL, 70, NULL, 90, 30. Welk antwoord geeft in volgorde het resultaat van SELECT COUNT(*), COUNT(Punten), AVG(Punten) FROM Resultaat?
- A6, 6, 40
- B6, 4, 40
- C6, 4, 60
Antwoord en toelichting tonen
Antwoord: C. 6, 4, 60
COUNT(*) telt rijen ongeacht of ze NULL bevatten, dus het is 6. Met een opgegeven kolom, zoals in COUNT(Punten), worden alleen de rijen geteld waarin die kolom niet NULL is, dus het is 4. AVG(Punten) deelt de som van de vier waarden die niet NULL zijn, 50 + 70 + 90 + 30 = 240, door het aantal waarden dat niet NULL is, 4, wat 240 ÷ 4 = 60 geeft. Let op: dat verschilt van de som delen door het totale aantal rijen, SUM(Punten) / COUNT(*) = 240 ÷ 6 = 40. Wie NULL als 0 punten wil behandelen, vervangt het vóór het aggregeren met COALESCE(Punten, 0).