Heim >Datenbank >MySQL-Tutorial >Wie finde ich die Zeile mit dem niedrigsten Wert für jeden Händler in MySQL?

Wie finde ich die Zeile mit dem niedrigsten Wert für jeden Händler in MySQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-29 08:10:11473Durchsuche

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

Den niedrigsten Wert für jeden Händler in MySQL erhalten

Stellen Sie sich eine Datenbank mit der folgenden Struktur vor:

CREATE TABLE your_table (
  id INT NOT NULL,
  name VARCHAR(255) NOT NULL,
  value INT NOT NULL,
  dealer VARCHAR(255) NOT NULL
);

Ziel: Rufen Sie die Zeile mit dem niedrigsten Wert für jedes Unique ab Händler.

Lösung:

Lösung 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;

Lösung 2 (Empfohlen):

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;

Diskussion:

Lösung 1 verwendet eine Unterabfrage, um den Mindestwert für jeden Händler zu ermitteln, und verknüpft diese Informationen dann mit dem Originaltabelle, um die vollständigen Zeilendaten zu sammeln. Lösung 2 hingegen verwendet einen optimierten Left-Join, um alle Zeilen mit größeren Werten für denselben Händler zu eliminieren und effektiv nur diejenigen mit den niedrigsten Werten zurückzugeben.

MySQL bietet hierfür einen eigenen Abschnitt in seiner Dokumentation Häufig anzutreffendes Szenario mit dem Titel „Zeilen halten das gruppenweise Maximum/Minimum einer bestimmten Spalte.“ Weitere Details und Beispiele finden Sie in dieser Dokumentation.

Das obige ist der detaillierte Inhalt vonWie finde ich die Zeile mit dem niedrigsten Wert für jeden Händler in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn