Wie wähle ich die eindeutige Zeile mit dem Mindestwert in einer SQL-Abfrage aus?
In Datenbanken ist es oft notwendig, die Datensätze zu extrahieren, die den Mindestwert einer bestimmten Spalte enthalten. Angenommen, eine Tabelle enthält die Spalten „id“, „game“ und „point“. Um die einzigen Zeilen mit dem kleinsten „Punkt“-Wert auszuwählen (gruppiert nach „Spiel“), können Sie die folgende gültige SQL-Abfrage verwenden:
<code class="language-sql">SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT Id, MIN(Point) MinPoint FROM TableName GROUP BY Id ) tbl1 ON tbl1.id = tbl.id WHERE tbl1.MinPoint = tbl.Point</code>
Diese Abfrage stellt sicher, dass nur die Zeilen mit dem kleinsten „Punkt“-Wert für jede eindeutige „ID“ ausgewählt werden. Die Unterabfrage in den Klammern berechnet den minimalen „Punkt“-Wert für jede „ID“ und speichert ihn in der temporären Spalte „MinPoint“. Die Hauptabfrage verknüpft dann die ursprüngliche Tabelle („TableName“) mit dieser temporären Tabelle basierend auf der gemeinsamen Spalte „id“.
Durch Filtern der Bedingung „tbl1.MinPoint = tbl.Point“ stellt die Abfrage sicher, dass nur Zeilen zurückgegeben werden, deren „point“-Wert mit dem Mindestwert innerhalb jeder „id“-Gruppe übereinstimmt. Dadurch wird die gewünschte Ausgabe erzeugt, bei der für jedes „Spiel“ die eindeutige Zeile mit dem kleinsten „Punktwert“ ausgewählt wird.
Beispiel:
Betrachten Sie das folgende Formular:
id | game | point |
---|---|---|
1 | x | 5 |
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
3 | y | 5 |
3 | z | 8 |
Das Ausführen der obigen Abfrage für diese Tabelle erzeugt die folgende Ausgabe:
id | game | point |
---|---|---|
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
Wie Sie sehen können, identifiziert die Abfrage korrekt die eindeutige Zeile mit dem kleinsten „Punktwert“ für jedes „Spiel“.
Hinweis: Es gibt Inkonsistenzen zwischen den ursprünglichen Beispieldaten und den Ergebnissen. Die Ergebnistabelle wurde korrigiert, um sie mit den Ergebnissen der SQL-Anweisung in Einklang zu bringen. Die korrigierte Ergebnistabelle zeigt die Zeile mit dem kleinsten id
-Wert für jedes point
. Wenn Sie den kleinsten game
-Wert nach point
-Gruppierung auswählen müssen, müssen Sie die SQL-Anweisung ändern.
Das obige ist der detaillierte Inhalt vonWie wähle ich in SQL eindeutige Zeilen mit dem Mindestwert aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!