Neueste Einträge mit Prüfwerten ungleich Null aus einer SQL-Tabelle extrahieren
Diese Anleitung zeigt, wie Sie die neuesten Datensätze für jede Gruppe effizient abrufen und nach Scheckbeträgen ungleich Null filtern können. Nehmen wir eine Tabelle an, die wie folgt aufgebaut ist:
<code>group date cash checks 1 1/1/2013 0 0 2 1/1/2013 0 800 1 1/3/2013 0 700 3 1/1/2013 0 600 1 1/2/2013 0 400 3 1/5/2013 0 200</code>
Der folgende SQL-Ansatz erreicht dies:
Zuerst ermitteln wir das maximale Datum für jede Gruppe, bei der der checks
-Wert größer als Null ist:
<code class="language-sql">SELECT group, MAX(date) AS max_date FROM table WHERE checks > 0 GROUP BY group;</code>
Das ergibt:
<code>group max_date 2 1/1/2013 1 1/3/2013 3 1/5/2013</code>
Als nächstes fügen wir dieses Ergebnis wieder der Originaltabelle hinzu, um die entsprechenden checks
Beträge abzurufen:
<code class="language-sql">SELECT t.group, t.date AS max_date, t.checks FROM table t INNER JOIN ( SELECT group, MAX(date) AS max_date FROM table WHERE checks > 0 GROUP BY group ) AS a ON a.group = t.group AND a.max_date = t.date;</code>
Diese letzte Abfrage erzeugt die gewünschte Ausgabe:
<code>group max_date checks 2 1/1/2013 800 1 1/3/2013 700 3 1/5/2013 200</code>
Wichtiger Hinweis: Von der Verwendung reservierter Wörter (wie date
) als Spaltennamen wird dringend abgeraten. Dies kann zu SQL-Syntaxfehlern führen und die Wartung Ihres Codes erschweren. Erwägen Sie aussagekräftigere und eindeutigere Namen für Ihre Spalten.
Das obige ist der detaillierte Inhalt vonWie wähle ich maximale Datumszeilen mit Scheckbeträgen ungleich Null in SQL aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!