>데이터 베이스 >MySQL 튜토리얼 >SQL Server 2005에서 연속 행 값의 차이를 계산하는 방법은 무엇입니까?

SQL Server 2005에서 연속 행 값의 차이를 계산하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-10 15:32:42149검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.