Grundlagen der Datenbanken
Die Spalte Punkte einer Ergebnistabelle enthält sechs Werte: 50, NULL, 70, NULL, 90, 30. Welche Antwort zeigt der Reihe nach das Ergebnis von SELECT COUNT(*), COUNT(Punkte), AVG(Punkte) FROM Ergebnis?
- A6, 6, 40
- B6, 4, 40
- C6, 4, 60
Antwort und Erläuterung anzeigen
Antwort: C. 6, 4, 60
COUNT(*) zählt die Zeilen unabhängig davon, ob sie NULL enthalten, und ergibt daher 6. Mit angegebener Spalte wie bei COUNT(Punkte) werden nur Zeilen gezählt, in denen diese Spalte nicht NULL ist, also 4. AVG(Punkte) teilt die Summe der vier Werte ungleich NULL, 50 + 70 + 90 + 30 = 240, durch deren Anzahl 4, was 240 ÷ 4 = 60 ergibt. Zu beachten ist, dass dies nicht mit der Summe geteilt durch die Gesamtzahl der Zeilen übereinstimmt, SUM(Punkte) / COUNT(*) = 240 ÷ 6 = 40. Soll NULL als 0 Punkte zählen, wird es vor der Aggregation mit COALESCE(Punkte, 0) ersetzt.