Heim >Datenbank >MySQL-Tutorial >Wie wähle ich maximale Datumszeilen mit Scheckbeträgen ungleich Null in SQL aus?

Wie wähle ich maximale Datumszeilen mit Scheckbeträgen ungleich Null in SQL aus?

Barbara Streisand
Barbara StreisandOriginal
2025-01-08 13:18:441006Durchsuche

How to Select Maximum Date Rows with Non-Zero Check Amounts in SQL?

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 checksBeträ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!

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