Entsprechende Spaltenwerte für den Maximalwert abrufen
In SQL können Situationen auftreten, in denen Sie Spaltenwerte abrufen möchten, die dem Maximalwert entsprechen Wert einer anderen Spalte und stellt gleichzeitig sicher, dass die abgerufenen Daten vorhanden sind genau.
Problem:
Wenn Sie eine Tabelle abfragen, um bestimmte Spalten abzurufen und die Ergebnisse basierend auf einer Spalte, z. B. einer Videokategorie, zu gruppieren, können Sie dies beobachten Maximaler Wert der angegebenen Spalte (z. B. video_id), es ruft den richtigen Wert ab, gibt aber die erste Zeile in der Tabelle für alle anderen Spalten zurück (z. B. video_url, video_date, video_title, und kurze_Beschreibung).
Lösung:
Um die Spalten, die dem Maximalwert entsprechen, ordnungsgemäß abzurufen, ziehen Sie den folgenden Ansatz in Betracht:
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
Dies Die Abfrage nutzt eine JOIN-Operation, um die Video-ID (video_id) aus der Unterabfrage, die die maximale Video-ID (id) für jede Videokategorie berechnet, mit der Video-ID aus den Videos abzugleichen Tisch. Durch die Verwendung der JOIN-Bedingung s.video_id = max.id wird sichergestellt, dass nur die Zeile mit der maximalen Video-ID für jede Kategorie zurückgegeben wird.
Dieser Ansatz liefert nicht nur die korrekten entsprechenden Werte für die maximale Video-ID ist aber auch deutlich schneller als die im ursprünglichen Beitrag vorgeschlagene Lösung.
Das obige ist der detaillierte Inhalt vonWie rufe ich entsprechende Spaltenwerte für den Maximalwert in SQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!