Bonsoir à tous,
Je travaille sur MySQL Workbench et à partir d'une table recensant le nom de toutes le communes françaises, je dois effectuer la requête permettant d'obtenir la liste des villes qui ont un nom existants plusieurs fois, et de la trier afin d’obtenir en premier celles dont le nom est le plus souvent utilisé par plusieurs communes (exercice proposé sur SQL.sh).
J'ai réussi à répondre ainsi :
Tandis que la correction se présente comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT ville_nom, COUNT(ville_nom) as doublon_ville FROM `villes_france_free` HAVING COUNT(ville_nom)>1 ORDER BY doublon_ville desc;
Je ne comprends pas pourquoi j'obtiens bien la liste des doublons alors que la condition occurrence>1 n'est pas spécifiée. J'ai bien repéré qu'en enlevant la ligne ORDER BY la requête me renvoie également la liste des villes ayant un nom unique, mais je ne saisis pas le lien entre COUNT et ORDER BY qui, apparemment, permet de supprimer par défaut les valeurs inférieures à 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT ville_nom, COUNT(*) AS nbt_item FROM `villes_france_free` GROUP BY `ville_nom` ORDER BY nbt_item DESC;
Quelqu'un pourrait-il m'expliquer ?
Merci par avance !
Partager