Basis van databases
De kolom Punten van de tabel Toets bevat vier waarden: 80, NULL, 70, 90 (NULL betekent dat de persoon de toets niet heeft gemaakt). Wat is het resultaat van SELECT AVG(Punten) FROM Toets?
- A60
- B80
- CNULL
Antwoord en toelichting tonen
Antwoord: B. 80
De aggregatiefuncties van SQL (SUM, AVG, MAX, MIN en COUNT met een opgegeven kolom) negeren NULL. AVG(Punten) is het gemiddelde van de drie waarden die niet NULL zijn: (80 + 70 + 90) ÷ 3 = 240 ÷ 3 = 80. NULL als 0 behandelen en door 4 delen zou 240 ÷ 4 = 60 geven, maar zo rekent AVG niet. Wie een gemiddelde wil waarin afwezigen als 0 punten meetellen, vervangt NULL vóór het aggregeren door 0, zoals in AVG(COALESCE(Punten, 0)). Als alle waarden NULL zijn, is het resultaat van AVG NULL.