J'ai une belle liste de serveurs associés à des pays.
Exemple :
France : serveur A, serveur B, serveur C
Italie : serveur D, serveur E
Allemagne : serveur F
Donc dans ma table SQL, j'ai 1 ligne par serveur avec un champ pays.
Je voudrais en faire un tri automatique par nombre de serveur dans un pays en décroissant. Logiquement j'aurais ça :
Sauf que grâce au GROUP BY, je n'obtiens plus qu'autant de ligne que de pays (logique) et je n'ai donc pas mon tri décroissant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT nom_serveur, pays, COUNT(*) cnt FROM liste_serveur GROUP BY pays ORDER BY cnt DESC
RESULTAT OBTENU :
serveur A - France - 3
serveur D - Italie - 2
serveur F - Allemagne - 1
RESULTAT SOUHAITE :
serveur A - France - 3
serveur B - France - 3
serveur C - France - 3
serveur D - Italie - 2
serveur E - Italie - 2
serveur F - Allemagne - 1
Il faudrait que je jette la clause GROUP BY, mais si je la jette, je ne peux plus faire mon COUNT(*).
Une idée ?
Partager