SUM et GROUP BY

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

marcuscollins
Nouveau WRInaute
 
Messages: 36
Inscription: Mar Aoû 02, 2005 8:28

SUM et GROUP BY

Message le Mer Aoû 09, 2006 15:56

Bonjour,

Je souhaiterai pouvoir trier par ordre décroissant (du plus grand au plus petit) la somme d'un champ d'une table. J'ai lu sur cette page http://mysql.com/doc/refman/5.0/fr/group-by-modifiers.html que l'on pouvait grouper les champs d'une table grâce à GROUP BY mais comment faire pour afficher du plus grand au plus petit la somme de plusieurs champs ?

Par exemple la requête ci-dessous trie les années, mais comment faire pour trier du plus grand au plus petit le "sum_profit" ?
mysql> SELECT year, country, product, SUM(profit) AS sum_profit
-> FROM sales
-> GROUP BY year, country, product;
+------+---------+------------+-------------+
| year | country | product | sum_profit |
+------+---------+------------+-------------+
| 2000 | Finland | Computer | 1500 |
| 2000 | Finland | Phone | 100 |
| 2000 | India | Calculator | 150 |
| 2000 | India | Computer | 1200 |
| 2000 | USA | Calculator | 75 |
| 2000 | USA | Computer | 1500 |
| 2001 | Finland | Phone | 10 |
| 2001 | USA | Calculator | 50 |
| 2001 | USA | Computer | 2700 |
| 2001 | USA | TV | 250 |
+------+---------+------------+-------------+



Si l'on rajoute un « ORDER BY sum_profit DESC » après le GROUP BY ça ne marche pas non plus !

D'avance merci pour vos réponses.
Dernière édition par marcuscollins le Jeu Aoû 10, 2006 15:39, édité 1 fois.

animus
WRInaute discret
WRInaute discret
 
Messages: 92
Inscription: Lun Mai 23, 2005 17:19

Message le Mer Aoû 09, 2006 20:29

Salut,

je ne suis pas pro en sql mais je crois que tu ne peux pas mettre plusieurs "trucs" avec SUM. Je l'avais lu dans un autre tuto

donc

mysql> SELECT year, country, product, SUM(profit) AS sum_profit
ne marche pas. Il faudrait faire d'abord un
mysql> SELECT = SUM(profit) AS sum_profit WHERE...

puis dans un second <?php ... ?> mysql> : SELECT year, country, product, etc...

essaies et dis moi si ça marche. Moi, perso, je décompose en plusieurs <?php...?> et ça fonctionne

J'espère ne pas dire trop de conneries au yeux des pros de ce forum

marcuscollins
Nouveau WRInaute
 
Messages: 36
Inscription: Mar Aoû 02, 2005 8:28

Message le Jeu Aoû 10, 2006 15:44

Merci animus pour ta réponse.

Théoriquement la requête ci-dessous doit fonctionner car je l'ai prise sur le tutoriel de mysql.com

SELECT year, country, product, SUM(profit) AS sum_profit
-> FROM sales
-> GROUP BY year, country, product;


J'ai essayé pas mal de solution pour essayer de trier du plus grand résultat au plus petit le "sum_profit" mais ça ne marche pas, même en rajoutant après le GROUP BY un « ORDER BY sum_profit DESC » , ça ne marche pas non plus, quelqu'un a-t-il une idée ?


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités