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

jiantox Messages postés 1092 Date d'inscription   Statut Membre Dernière intervention   -  
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   -
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

1 réponse

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Essayes peut être SUM(LENGTH(...)) peut être et dans le ORDER BY, utilises le nom du champs nommé avec le AS.
0