MySQL : Récupération des lignes avec la valeur la plus faible pour chaque revendeur
La tâche à accomplir consiste à récupérer les lignes avec les valeurs les plus basses pour chaque revendeur distinct revendeur à partir d'une table de base de données contenant des colonnes telles que l'identifiant, le nom, la valeur et concessionnaire.
Stratégie :
Pour résoudre ce problème, deux solutions sont présentées ci-dessous :
Solution 1 :
SELECT t1.* FROM your_table t1 JOIN ( SELECT MIN(value) AS min_value, dealer FROM your_table GROUP BY dealer ) AS t2 ON t1.dealer = t2.dealer AND t1.value = t2.min_value
Cette solution fonctionne en trouvant d'abord la valeur minimale pour chaque concessionnaire en utilisant MIN() et GROUP BY. Il joint ensuite ce résultat à la table d'origine à l'aide d'un INNER JOIN sur la colonne dealer et la colonne min_value.
Solution 2 (recommandée) :
SELECT t1.* FROM your_table t1 LEFT JOIN your_table t2 ON t1.dealer = t2.dealer AND t1.value > t2.value WHERE t2.value IS NULL
Solution 2 utilise un LEFT JOIN pour trouver les lignes où il n'y a pas de lignes avec des valeurs plus élevées pour le même concessionnaire. Par conséquent, il produit les lignes avec les valeurs les plus basses pour chaque revendeur.
Remarque importante :
La documentation de MySQL comporte une page dédiée à ce problème spécifique : "Rows Holding the Maximum/Minimum par groupe d'une certaine colonne". Reportez-vous à cette page pour plus d'informations et des approches alternatives.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!