MySQL : comment grouper les entrées puis les trier ?

  • Auteur de la discussion Auteur de la discussion milkiway
  • Date de début Date de début
WRInaute accro
Bonjour,

J'ai une table de ce type

Et je voudrais obtenir une liste des meilleurs prix pour chaque modèle et classés par modèle, soit avoir le résultat suivant :

Audi A3 5600
Peugeot 308 2265
Renault Clio 1346
Renault Fluence 4635
Renault Kangoo 2569
Renault Twingo 1280

Je n'y arrive pas...
J'ai fait un SELECT DISTINCT avec un GROUP BY mais le GROUP BY me renvoie les valeurs qu'il veut.
J'ai fait avec une table temporaire mais ça marche pas.

Que faut il faire ? Une sous requête ?

Faut savoir aussi que la table contient 15 000 entrées (et que le résultat est mis en cache).

Merci à vous !
 
WRInaute accro
De mémoire, il faut que tu définisses un champs supplémentaire, genre sum (mais vraiment de mémoire... :( )
 
WRInaute impliqué
Marie-Aude a une partie raison, sauf que ce n'est pas SUM mais MIN.

Code:
SELECT marque, modele, MIN(prix)
FROM TaTable
GROUP By modele
ORDER By marque ASC, modele ASC

Ceci devrait fonctionner.
 
WRInaute impliqué
De rien.

D'ailleurs, pour récupérer le prix plus facilement, il vaut mieux utiliser un alias :

Code:
SELECT marque, modele, MIN(prix) prix
FROM TaTable
GROUP By modele
ORDER By marque ASC, modele ASC
 
WRInaute discret
Une petite correction pour la requete avec l'alias :
Code:
SELECT marque, modele, MIN(prix) AS minprix
FROM TaTable
GROUP By modele
ORDER By marque ASC, modele ASC

Le AS avais été oublier et il vaux mieux donner un autre nom au champ ;)
 
WRInaute impliqué
IllusionPerdu a dit:
Une petite correction pour la requete avec l'alias :
Code:
SELECT marque, modele, MIN(prix) AS minprix
FROM TaTable
GROUP By modele
ORDER By marque ASC, modele ASC

Le AS avais été oublier et il vaux mieux donner un autre nom au champ ;)

Je ne vois pas de correction nécessaire.
  • le mot clé AS est optionnel
  • on peut tout à fait utiliser le même nom de champ. C'est un procéder que j'utilise régulièrement.
 
WRInaute accro
Bien que "AS" soit optionnel, je partage l'avis d'IllusionPerdu : ce sont des "bonnes pratiques" rendant le code plus lisible ;)
 
Discussions similaires
Haut