Vorherige Zeilendaten in SQL SELECT-Abfragen abrufen
Dieser Leitfaden befasst sich mit der Herausforderung, Unterschiede zwischen aufeinanderfolgenden Zeilen in einer SQL-Tabelle zu berechnen. Eine einfache Subtraktion reicht nicht aus, da in Standard-SQL keine inhärente Berücksichtigung der Zeilenreihenfolge berücksichtigt wird. Die Lösung besteht darin, die Funktion LAG
zu nutzen.
Die Funktion LAG
ruft Daten aus vorhergehenden Zeilen innerhalb einer SELECT
-Anweisung ab. Seine Syntax ist:
<code class="language-sql">LAG(column_name, offset, default) OVER (ORDER BY order_column)</code>
Hier ist eine Aufschlüsselung:
column_name
: Die Spalte mit den Daten, die Sie aus der vorherigen Zeile benötigen.offset
: Gibt an, auf wie viele Zeilen zurückgeschaut werden soll (1 für die unmittelbar vorhergehende Zeile).default
: Der zurückgegebene Wert, wenn offset
die erste Zeile überschreitet.order_column
: Die Spalte, die die Zeilenreihenfolge definiert.Beispielimplementierung:
Um die Differenz zwischen aufeinanderfolgenden value
Einträgen zu berechnen, sortiert nach einer Id
Spalte:
<code class="language-sql">SELECT value - LAG(value, 1, 0) OVER (ORDER BY Id) AS difference FROM your_table;</code>
Diese Abfrage subtrahiert den value
der vorherigen Zeile (Offset 1) vom value
der aktuellen Zeile. Die Spalte Id
stellt die korrekte Reihenfolge sicher und verhindert Probleme, die durch nicht aufeinanderfolgende Id
-Werte entstehen. Der 0
-Standard behandelt die erste Zeile und vermeidet Fehler. Das Ergebnis ist eine neue difference
Spalte, in der die berechneten Variationen angezeigt werden.
Das obige ist der detaillierte Inhalt vonWie kann ich in SQL-SELECT-Anweisungen auf vorherige Zeilenwerte zugreifen und diese verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!