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

jiantox Messages postés 1159 Statut Membre -  
NHenry Messages postés 15479 Statut Modérateur -
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 15479 Statut Modérateur 366
 
Essayes peut être SUM(LENGTH(...)) peut être et dans le ORDER BY, utilises le nom du champs nommé avec le AS.
0