Maison >base de données >tutoriel mysql >Comment récupérer des lignes avec la valeur minimale pour chaque revendeur dans MySQL ?

Comment récupérer des lignes avec la valeur minimale pour chaque revendeur dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 07:54:15262parcourir

How to Retrieve Rows with the Minimum Value for Each Dealer in MySQL?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn