Heim > Datenbank > MySQL-Tutorial > Wie wählt man in SQL effizient maximale Datumszeilen mit Prüfwerten ungleich Null aus?

Wie wählt man in SQL effizient maximale Datumszeilen mit Prüfwerten ungleich Null aus?

Susan Sarandon
Freigeben: 2025-01-08 13:36:42
Original
202 Leute haben es durchsucht

How to Efficiently Select Max Date Rows with Non-Zero Check Values in SQL?

Extrahieren von maximalen Datumszeilen mit Scheckbeträgen ungleich Null in SQL

Dieses Beispiel zeigt, wie Sie eindeutige Gruppen mit den neuesten Daten und Scheckwerten ungleich Null aus einem Datensatz auswählen, der Gruppen, Daten und Geldwerte (Bargeld und Schecks) enthält.

Ein erster Versuch mit dieser Abfrage erwies sich als unzureichend:

<code class="language-sql">SELECT group, MAX(date), checks
FROM table
WHERE checks > 0
GROUP BY group
ORDER BY group DESC</code>
Nach dem Login kopieren

Diese Abfrage hat alle Daten und Prüfwerte für jede Gruppe zurückgegeben, nicht nur die Daten aus der Zeile mit dem maximalen Datum.

Die Lösung umfasst einen zweistufigen Ansatz:

Zuerst ermitteln wir das maximale Datum für jede Gruppe mit Prüfwerten ungleich Null:

<code class="language-sql">SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group</code>
Nach dem Login kopieren

Dann verbinden wir diesen Ergebnissatz wieder mit der ursprünglichen Tabelle, um die entsprechenden checks (und andere relevante Spalten) für diese Zeilen mit maximalem Datum abzurufen:

<code class="language-sql">SELECT t.group, a.max_date, t.checks
FROM table t
INNER JOIN (
    SELECT group, MAX(date) AS max_date
    FROM table
    WHERE checks > 0
    GROUP BY group
) a ON a.group = t.group AND a.max_date = t.date;</code>
Nach dem Login kopieren

Dieser innere Join stellt sicher, dass nur Zeilen, die sowohl dem maximalen Datum als auch den Prüfkriterien ungleich Null entsprechen, in der endgültigen Ausgabe enthalten sind.

Best Practice: Die Verwendung beschreibender und nicht reservierter Wörter für Spaltennamen (z. B. group_id anstelle von group) verbessert die Lesbarkeit des Codes und verringert das Fehlerrisiko.

Das obige ist der detaillierte Inhalt vonWie wählt man in SQL effizient maximale Datumszeilen mit Prüfwerten ungleich Null aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage