Initiation à SQL : COUNT et ORDER BY
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 :
Code:
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; |
Tandis que la correction se présente comme cela :
Code:
1 2 3 4
| SELECT ville_nom, COUNT(*) AS nbt_item
FROM `villes_france_free`
GROUP BY `ville_nom`
ORDER BY nbt_item 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.
Quelqu'un pourrait-il m'expliquer ? :)
Merci par avance !