Heim >Datenbank >MySQL-Tutorial >Wie finde ich unterschiedliche Zeilen mit minimalen Werten in SQL unter Verwendung von Verknüpfungen?

Wie finde ich unterschiedliche Zeilen mit minimalen Werten in SQL unter Verwendung von Verknüpfungen?

DDD
DDDOriginal
2025-01-24 08:21:09333Durchsuche

How to Find Distinct Rows with Minimum Values in SQL Using Joins?

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:

  • Inner Join: Dies kombiniert effizient das TableName (Alias ​​als tbl) mit den Ergebnissen der Unterabfrage (Alias ​​als tbl1).
  • Unterabfrage: Dies berechnet das Minimum 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.
  • ON-Klausel: Die Join-Bedingung stellt sicher, dass nur Zeilen einbezogen werden, in denen game und point zwischen der Haupttabelle und der Unterabfrage übereinstimmen. Dadurch werden Zeilen mit dem Mindestwert point für jedes game.
  • genau ausgewählt

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!

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