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

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par milkiway, 21 Mars 2011.

  1. milkiway
    milkiway WRInaute accro
    Inscrit:
    3 Février 2004
    Messages:
    4 237
    J'aime reçus:
    0
    Bonjour,

    J'ai une table de ce type
    [​IMG]
    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 !
     
  2. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 361
    J'aime reçus:
    2
    De mémoire, il faut que tu définisses un champs supplémentaire, genre sum (mais vraiment de mémoire... :( )
     
  3. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    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.
     
  4. milkiway
    milkiway WRInaute accro
    Inscrit:
    3 Février 2004
    Messages:
    4 237
    J'aime reçus:
    0
  5. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    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
    
     
  6. IllusionPerdu
    IllusionPerdu WRInaute discret
    Inscrit:
    11 Mars 2006
    Messages:
    130
    J'aime reçus:
    0
    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 ;)
     
  7. milkiway
    milkiway WRInaute accro
    Inscrit:
    3 Février 2004
    Messages:
    4 237
    J'aime reçus:
    0
    Merci mais pourquoi donner un alias dans ce cas?
     
  8. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 249
    J'aime reçus:
    0
    si tu veux le récupérer après avec mysql_fetch_array(). $value['minprix'] :)
     
  9. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    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.
     
  10. cedric_g
    cedric_g WRInaute accro
    Inscrit:
    18 Janvier 2006
    Messages:
    2 961
    J'aime reçus:
    1
    Bien que "AS" soit optionnel, je partage l'avis d'IllusionPerdu : ce sont des "bonnes pratiques" rendant le code plus lisible ;)
     
Chargement...
Similar Threads - MySQL grouper entrées Forum Date
Regrouper des expressions qui se ressemblent, en PHP ou MySQL, à l'aide Développement d'un site Web ou d'une appli mobile 6 Mars 2011
encodage texte sur requete mysql Demandes d'avis et de conseils sur vos sites 21 Octobre 2020
Requête MySql imbriquée Développement d'un site Web ou d'une appli mobile 8 Octobre 2020
Supprimer les doublons d'une table mysql Développement d'un site Web ou d'une appli mobile 16 Juin 2020
Mysql migration utf8->utf8mb4 Développement d'un site Web ou d'une appli mobile 17 Août 2019
recherche lettres dans mysql Développement d'un site Web ou d'une appli mobile 11 Juillet 2019
cache mysql maison Développement d'un site Web ou d'une appli mobile 18 Février 2019
Stocker dans des variables php les fonctions MySql Développement d'un site Web ou d'une appli mobile 2 Février 2019
message : [LEGACY][libmysqlclient] Please consider moving to stable and mysqlnd in Administration d'un site Web 8 Novembre 2018
Connexion à un serveur mysql distant Développement d'un site Web ou d'une appli mobile 21 Octobre 2018