Heim >Datenbank >MySQL-Tutorial >Wie finde ich unterschiedliche Zeilen mit minimalen Werten in SQL unter Verwendung von Verknüpfungen?
SQL-Abfrageoptimierung: Eindeutige Zeilen mit Mindestwerten abrufen
Diese Anleitung demonstriert eine effiziente SQL-Technik zum Extrahieren eindeutiger Zeilen, die den Mindestwert aus einer bestimmten Spalte enthalten. Dies ist häufig beim Umgang mit gruppierten Daten erforderlich und erfordert eine Kombination aus Verknüpfungen und Filterung.
Betrachten Sie die folgende Beispieltabelle:
<code class="language-sql">id game point 1 x 5 1 z 4 2 y 6 3 x 2 3 y 5 3 z 8</code>
Das Ziel besteht darin, die id
und point
für jedes einzelne game
abzurufen und den minimalen point
-Wert für dieses Spiel anzuzeigen. Der erwartete Ergebnissatz ist:
<code class="language-sql">id game point 1 z 4 2 y 6 3 x 2</code>
Die folgende SQL-Abfrage erreicht dies:
<code class="language-sql">SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT game, MIN(point) AS min_point FROM TableName GROUP BY game ) AS tbl1 ON tbl1.game = tbl.game AND tbl1.min_point = tbl.point;</code>
Hier ist eine Aufschlüsselung der Abfrage:
TableName
(Alias als tbl
) mit den Ergebnissen der Unterabfrage (Alias als tbl1
).point
für jedes eindeutige game
mithilfe von MIN(point)
und gruppiert die Ergebnisse nach game
. Das Ergebnis ist eine Tabelle mit game
und dem entsprechenden Minimum point
.game
und point
zwischen der Haupttabelle und der Unterabfrage übereinstimmen. Dadurch werden Zeilen mit dem Mindestwert point
für jedes game
.Diese optimierte Abfrage vermeidet unnötige Komplexität und ruft direkt die gewünschten Ergebnisse ab. Es ist eine präzisere und oft schnellere Lösung als alternative Ansätze.
Das obige ist der detaillierte Inhalt vonWie finde ich unterschiedliche Zeilen mit minimalen Werten in SQL unter Verwendung von Verknüpfungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!