Bases des bases de données
La colonne Points d'une table Resultat contient 6 valeurs : 50, NULL, 70, NULL, 90, 30. Quelle proposition donne, dans l'ordre, le résultat de SELECT COUNT(*), COUNT(Points), AVG(Points) FROM Resultat ?
- A6, 6, 40
- B6, 4, 40
- C6, 4, 60
Afficher la réponse et l'explication
Réponse : C. 6, 4, 60
COUNT(*) compte les lignes, qu'elles contiennent NULL ou non ; il vaut donc 6. Avec une colonne spécifiée, comme dans COUNT(Points), seules les lignes où cette colonne n'est pas NULL sont comptées ; il vaut donc 4. AVG(Points) divise la somme des 4 valeurs non NULL, 50 + 70 + 90 + 30 = 240, par le nombre de valeurs non NULL, 4, ce qui donne 240 ÷ 4 = 60. Attention, cela diffère de la division de la somme par le nombre total de lignes, SUM(Points) / COUNT(*) = 240 ÷ 6 = 40. Pour traiter NULL comme 0 point, on le remplace avec COALESCE(Points, 0) avant l'agrégation.
Continuer : 9 autres questions sur Bases des bases de données