4a - Groupement et Agrégats (Contacts)¶
1- Compter le nombre de lignes dans la table call
2- Compter le nombre d’appels pour chaque numéro de téléphone dans la table call, et renommer la colonne count en quelque chose de plus approprié.
3- Compter le nombre d’appels pour chaque numéro de téléphone dans la table call, et trier les résultats par le plus grand nombre d’appels en premier.
4- Compter le nombre d’appels pour chaque numéro de téléphone dans la table call, et ne garder que les numéros de téléphone avec plus d’un appel.
- utiliser
HAVINGavec une condition HAVINGest similaire àWHERE, mais il est exécuté après leGROUP BY, tandis que leWHEREest exécuté après leFROM, mais avant leGROUP BY- même si
SELECTest écrit en premier, il est en fait exécuté aprèsHAVING, mais avantORDER BY(si présent)
5- Nous pouvons grouper non seulement les lignes d’une table, mais aussi tout tableau de résultats de la partie FROM de la requête
- cette requête calcule le nombre d’appels pour chaque contact (non pas pour chaque numéro de téléphone dans
call, mais pour chaquecontact_iddanscontact) - notez que les contacts sans aucun appel sont listés avec un compte de 0 parce que nous utilisons une jointure externe gauche, donc les contacts ne correspondant à rien dans
call, en d’autres termes, les contacts sans appels associés, seront conservés dans les résultats