Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeilen mit dem niedrigsten Wert für jeden Händler in MySQL effizient abrufen?

Wie kann ich Zeilen mit dem niedrigsten Wert für jeden Händler in MySQL effizient abrufen?

Susan Sarandon
Susan SarandonOriginal
2024-11-28 09:13:11628Durchsuche

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

Zeilen mit dem niedrigsten Wert für mehrere Händler mithilfe von MySQL abrufen

In einer Datenbank mit Spalten einschließlich ID, Name, Wert und Händler, Sie Ziel ist es, Zeilen mit dem niedrigsten Wert für jeden einzelnen Händler abzurufen. Beim Versuch mit MIN() und GROUP BY haben Sie keine Lösung gefunden.

Empfohlene Lösungen:

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 (Schneller):

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

Erklärung:

Lösung 1 verwendet eine Unterabfrage, um den Mindestwert für jeden Händler zu ermitteln. Anschließend verknüpft es diese Unterabfrage mit der Haupttabelle, um die entsprechenden Zeilen abzurufen.

Lösung 2 nutzt eine Selbstverknüpfung, um effizient Zeilen mit dem niedrigsten Wert für jeden Händler zu finden. Es verwendet einen LEFT JOIN und prüft, ob es eine Zeile mit einem niedrigeren Wert gibt. Wenn nicht, ist es der niedrigste Wert für diesen Händler.

Zusätzliche Informationen:

Dies ist ein häufig auftretendes MySQL-Problem. Weitere Informationen finden Sie in der Dokumentation hier: „Zeilen, die das gruppenweise Maximum/Minimum einer bestimmten Spalte enthalten“.

Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen mit dem niedrigsten Wert für jeden Händler in MySQL effizient abrufen?. 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