Trier les données avec SUM()
8 messages
• Page 1 sur 1
- marcuscollins
- Nouveau WRInaute

- Messages: 36
- Inscription: 2 Aoû 2005
Trier les données avec SUM()
Bonjour,
Je chercher à trier du plus grand au plus petit des données de ma table qui ont été aditionné au préalable avec la fonction SUM(), quelqu'un peut-il m'aider ?
Voici ma requête mysql qui ne marche pas :
Ca m'affiche bien la somme de la colonne "evolution_mensuelle" pour l'année 2006 mais cette somme n'est pas trié du plus grand au plus petit, c'est trié n'importe comment !
Quelqu'un a-t-il une solution ?
D'avance merci.
Je chercher à trier du plus grand au plus petit des données de ma table qui ont été aditionné au préalable avec la fonction SUM(), quelqu'un peut-il m'aider ?
Voici ma requête mysql qui ne marche pas :
SELECT SUM(evolution_mensuelle), num, date FROM evolution_prix WHERE date LIKE '2006%' GROUP BY evolution_mensuelle ORDER BY evolution_mensuelle DESC;
Ca m'affiche bien la somme de la colonne "evolution_mensuelle" pour l'année 2006 mais cette somme n'est pas trié du plus grand au plus petit, c'est trié n'importe comment !
Quelqu'un a-t-il une solution ?
D'avance merci.
- marcuscollins
- Nouveau WRInaute

- Messages: 36
- Inscription: 2 Aoû 2005
Merci ltressens pour ta réponse.
Ta requête n'était pas tout à fait exacte, car apparement on ne peut pas regrouper "sum_evol_mensuelle" avec GROUP BY, il faut en fait laisser le nom du champ de la table "evolution_mensuelle" dans le GROUP BY, ce qui donne :
Mais à présent ça fonctionne bien donc merci pour ton aide.
Ta requête n'était pas tout à fait exacte, car apparement on ne peut pas regrouper "sum_evol_mensuelle" avec GROUP BY, il faut en fait laisser le nom du champ de la table "evolution_mensuelle" dans le GROUP BY, ce qui donne :
SELECT SUM(evolution_mensuelle) AS sum_evol_mensuelle, num ... GROUP BY evolution_mensuelle ORDER BY sum_evol_mensuelle DESC;
Mais à présent ça fonctionne bien donc merci pour ton aide.
- Sir Dipp
- WRInaute passionné

- Messages: 1025
- Inscription: 21 Juil 2003
Salut,
Sinon tu aurais pu écrire comme ceci aussi :
On gagne quelques octets
A+
Sinon tu aurais pu écrire comme ceci aussi :
- Code: Tout sélectionner
SELECT SUM(evolution_mensuelle), num, date FROM evolution_prix WHERE date LIKE '2006%' GROUP BY evolution_mensuelle ORDER BY 1 DESC;
On gagne quelques octets
A+
- shrom
- WRInaute impliqué

- Messages: 865
- Inscription: 5 Juil 2004
En même temps il y a quelques petites inperfections dans la requête:
- date est un mot réservé, il faut donc le quoté
- LIKE '2006%' n'est pas très performant, j'ose espérer que tu utilise le type date propre à ton SGBD, il suffit alors d'utiliser les fonction de date qui seront beaucoup plus rapides qu'un LIKE
- date est un mot réservé, il faut donc le quoté
- LIKE '2006%' n'est pas très performant, j'ose espérer que tu utilise le type date propre à ton SGBD, il suffit alors d'utiliser les fonction de date qui seront beaucoup plus rapides qu'un LIKE
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Plug-in d'opt-out de Google Analytics - 19-03-2010
- Les deux échelles du PageRank - 10-08-2004
- Les 2 échelles de PageRank : toolbar et DMOZ - 10-08-2004
- Sortie officielle de GoogleStats v2.0 ! - 23-02-2003
- Recherches Google en HTTPS : suppression du referrer - 25-05-2010
- Les blogs (Search Engine Strategies 2004 - San José) - 06-08-2004
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- La commande site: dans Google - 25-10-2004
- Test de positionnement sur data centers
Cet outil vous permet d'afficher sur une seule page les résultats Google effectués sur de nombreux data centers (centres de données).
Qui est en ligne
Utilisateurs parcourant ce forum: padadam22 et 0 invités

