Heim >Datenbank >MySQL-Tutorial >Wie rufe ich den Maximalwert und zugehörige Spalten in SQL-Unterabfragen ab?

Wie rufe ich den Maximalwert und zugehörige Spalten in SQL-Unterabfragen ab?

Barbara Streisand
Barbara StreisandOriginal
2024-12-29 12:51:15473Durchsuche

How to Retrieve Maximum Value and Associated Columns in SQL Subqueries?

Maximalwert-Unterabfragen in SQL

In dieser Abfrage versuchen Sie, die entsprechenden Werte für Spalten basierend auf dem Maximalwert einer anderen Spalte abzurufen . Während Ihr ursprünglicher Ansatz eine GROUP BY-Anweisung verwendet, ruft er zuverlässig nur die maximale Video-ID ab, nicht jedoch die zugehörigen Daten aus anderen Spalten.

Um dieses Problem zu beheben, sollten Sie die Verwendung einer Unterabfrage in Betracht ziehen, die die eindeutigen maximalen Video-IDs pro Kategorie identifiziert . Die folgende modifizierte Abfrage folgt diesem Ansatz:

SELECT
    *
FROM
    videos
WHERE
    video_id IN
    (
        SELECT
            DISTINCT
            MAX(video_id)
        FROM
            videos
        GROUP BY
            video_category
    ) 
ORDER BY
    video_category ASC

In dieser Abfrage wird eine Unterabfrage verwendet, um den Satz maximaler Video-IDs zu isolieren. Anschließend wird die Tabelle mit diesem Satz gefiltert, um alle Spalten für die entsprechenden maximalen Video-IDs abzurufen. Durch die Nutzung des IN-Operators und die Verkettung der Ergebnisse ruft diese Abfrage effizient die gewünschten Werte ab.

Alternativ können Sie eine Verknüpfungsoperation verwenden, um das gleiche Ergebnis zu erzielen, wie unten gezeigt:

SELECT
   s.video_id
   ,s.video_category
   ,s.video_url
   ,s.video_date
   ,s.video_title
   ,s.short_description
FROM videos s
   JOIN (SELECT MAX(video_id) AS id FROM videos GROUP BY video_category) max
      ON s.video_id = max.id

Dieser Ansatz verwendet einen Join, um die Zeilen mit der maximalen Video-ID mit den entsprechenden Zeilen aus der Videotabelle abzugleichen und den vollständigen Satz von Spalten für jede maximale Video-ID abzurufen. Beide Lösungen lösen das Problem effektiv, indem sie die Werte erfassen, die mit den maximalen Video-IDs in jeder Kategorie verknüpft sind.

Das obige ist der detaillierte Inhalt vonWie rufe ich den Maximalwert und zugehörige Spalten in SQL-Unterabfragen ab?. 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