집 >데이터 베이스 >MySQL 튜토리얼 >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 중국어 웹사이트의 기타 관련 기사를 참조하세요!