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!