首頁 > 資料庫 > mysql教程 > 如何計算SQL Server 2005中連續行值之間的差異?

如何計算SQL Server 2005中連續行值之間的差異?

Patricia Arquette
發布: 2025-01-10 15:32:42
原創
144 人瀏覽過

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

計算 SQL Server 2005 中連續行之間的差異

本指南示範如何計算 SQL Server 2005 表中連續行值之間的差異。 該解決方案利用自連接來有效地實現此計算。

這是 SQL 查詢:

<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>
登入後複製

此查詢執行 sourceTable(別名 c 表示「目前」)與其自身(別名 n 表示「下一個」)的左連接。 連接條件n.rowInt = (SELECT MIN(rowInt) FROM sourceTable WHERE rowInt > c.rowInt)依照rowInt列找出下一行,確保順序正確。 ISNULL(n.Value, 0) 處理沒有下一行的情況,防止錯誤。 差異計算為 n.Value - c.Value 並別名為 Diff.

範例:

考慮這個範例sourceTable

rowInt Value
2 23
3 45
9 0
17 10

查詢的輸出將是:

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

Diff 欄位顯示目前行的 Value 與下一行的 Value 之間的差異。 請注意,最後一行的差異為 0,因為沒有後續行。

以上是如何計算SQL Server 2005中連續行值之間的差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板