Maison >base de données >tutoriel mysql >Comment récupérer la ligne avec la valeur la plus basse pour chaque revendeur dans MySQL ?

Comment récupérer la ligne avec la valeur la plus basse pour chaque revendeur dans MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-30 16:50:13525parcourir

How to Retrieve the Row with the Lowest Value for Each Dealer in MySQL?

Récupération des valeurs les plus basses pour chaque revendeur dans MySQL

Problème

Dans une base de données contenant une table avec des colonnes identifiant, nom, valeur et revendeur, la tâche consiste à récupérer la ligne avec la valeur la plus basse pour chaque unique revendeur.

Solution

Méthode 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;

Méthode 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;

Ce problème est communément appelé « Ligne contenant le maximum/minimum par groupe d'un certain Colonne." La deuxième solution est généralement plus efficace que la première.

Pour plus d'informations, reportez-vous à la page correspondante du manuel MySQL : https://dev.mysql.com/doc/refman/8.0/en/group -by-rows-max-min.html

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