Heim > Datenbank > MySQL-Tutorial > Wie berechnet man die Differenz zwischen aufeinanderfolgenden Zeilenwerten in SQL Server 2005?

Wie berechnet man die Differenz zwischen aufeinanderfolgenden Zeilenwerten in SQL Server 2005?

Patricia Arquette
Freigeben: 2025-01-10 15:32:42
Original
144 Leute haben es durchsucht

How to Calculate the Difference Between Consecutive Row Values in SQL Server 2005?

Berechnen von Unterschieden zwischen aufeinanderfolgenden Zeilen in SQL Server 2005

Diese Anleitung zeigt, wie Sie die Differenz zwischen aufeinanderfolgenden Zeilenwerten innerhalb einer SQL Server 2005-Tabelle berechnen. Die Lösung nutzt einen Self-Join, um diese Berechnung effizient durchzuführen.

Hier ist die SQL-Abfrage:

<code class="language-sql">SELECT
   c.rowInt,
   c.Value,
   ISNULL(n.Value, 0) - c.Value AS Diff
FROM
   sourceTable AS c
LEFT JOIN
   sourceTable AS n
      ON n.rowInt = (SELECT MIN(rowInt) FROM sourceTable WHERE rowInt > c.rowInt)</code>
Nach dem Login kopieren

Diese Abfrage führt eine Linksverknüpfung des sourceTable (Alias ​​als c für „aktuell“) mit sich selbst (Alias ​​als n für „nächste“) durch. Die Join-Bedingung n.rowInt = (SELECT MIN(rowInt) FROM sourceTable WHERE rowInt > c.rowInt) findet die nächste Zeile basierend auf der Spalte rowInt und stellt so die richtige Reihenfolge sicher. ISNULL(n.Value, 0) behandelt Fälle, in denen es keine nächste Zeile gibt, und verhindert so Fehler. Die Differenz wird als n.Value - c.Value berechnet und mit dem Alias ​​Diff versehen.

Beispiel:

Betrachten Sie dieses Beispiel sourceTable:

rowInt Value
2 23
3 45
9 0
17 10

Die Ausgabe der Abfrage wäre:

rowInt Value Diff
2 23 22
3 45 -45
9 0 10
17 10 0

Die Spalte Diff zeigt die Differenz zwischen dem Value der aktuellen Zeile und dem Value der nächsten Zeile. Beachten Sie, dass die Differenz der letzten Zeile 0 beträgt, da es keine nachfolgende Zeile gibt.

Das obige ist der detaillierte Inhalt vonWie berechnet man die Differenz zwischen aufeinanderfolgenden Zeilenwerten in SQL Server 2005?. 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