[SQL] LENGTH + GROUP BY + ORDER BY possible ?

Fermé
jiantox Messages postés 1081 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 26 janvier 2019 - 9 janv. 2016 à 14:44
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 9 janv. 2016 à 14:53
Bonjour, voici mon soucis


j'ai actuellement cette requête qui me permet de lister dans l'ordre décroissant le nombre de messages postés par pseudo :

("SELECT *, COUNT(*) AS nmess FROM table WHERE type = 'message' AND pseudo != '' GROUP BY pseudo ORDER BY COUNT(message) DESC LIMIT 10");

Cette requête me convient parfaitement, mais ce que j'aimerais maintenant, c'est pouvoir lister les pseudo par nombre de caractères postés.

Du coup rajouter quelque part le fameux LENGTH, tout en gardant le group by pour les pseudos et le order by pour le décroissant.

J'ai essayer nombreuses choses mais la seule requête qui ne me sort pas d'erreur, c'est celle ci :

("SELECT *, LENGTH(message) AS nmess FROM table WHERE type = 'message' AND pseudo != '' GROUP BY pseudo ORDER BY LENGTH(message) DESC LIMIT 10");

Elle doit être bien erronée car elle me ressort ces résultats (comparés à ma 1ère requête) :

pseudo 1 - 274 messages - 4 caractères

pseudo 2 - 54 messages - 52 caractères

Quelqu'un peut m'éclairer ? j'ai toujours été pommé dans les requêtes imbriquées ou plutôt complexe comme celle-ci.

Merci d'avance
A voir également:

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
9 janv. 2016 à 14:53
Essayes peut être SUM(LENGTH(...)) peut être et dans le ORDER BY, utilises le nom du champs nommé avec le AS.
0