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

SQL 테이블에서 행 값 차이를 계산하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-10 15:18:46
원래의
224명이 탐색했습니다.

How to Calculate Row Value Differences in a SQL Table?

SQL 테이블의 행 값 차이를 효율적으로 계산

이 가이드에서는 비순차적 테이블 구조에 초점을 맞춰 SQL 테이블 내에서 연속된 행 값 간의 차이를 계산하는 두 가지 방법을 보여줍니다. 첫 번째 방법은 모든 SQL 버전에 적합한 반면, 두 번째 방법은 SQL Server 2012 이상에서 성능 향상을 위해 윈도우 기능을 활용합니다.

방법 1: Self-Join(모든 SQL 버전)

이 접근 방식은 LEFT JOIN을 사용하여 행 식별자(이 예에서는 rowInt)를 기반으로 각 행을 후속 행과 비교합니다.

<code class="language-sql">SELECT
   current.rowInt,
   current.Value,
   ISNULL(next.Value, 0) - current.Value AS ValueDifference
FROM
   sourceTable AS current
LEFT JOIN
   sourceTable AS next
      ON next.rowInt = (SELECT MIN(rowInt) FROM sourceTable WHERE rowInt > current.rowInt)</code>
로그인 후 복사

ISNULL 함수는 행에 후속 항목이 없는 경우(마지막 행)를 처리하고 NULL 값을 피하기 위해 차이 0을 할당합니다.

방법 2: LEAD() 창 함수(SQL Server 2012 이상)

최신 SQL Server 버전의 효율성 향상을 위해 LEAD() 창 기능은 더욱 간소화된 솔루션을 제공합니다.

<code class="language-sql">SELECT
  RowInt,
  Value,
  LEAD(Value, 1, 0) OVER (ORDER BY RowInt) - Value AS ValueDifference
FROM
  sourceTable</code>
로그인 후 복사

LEAD(Value, 1, 0)은 다음 행(오프셋 1)에서 값을 검색하며, 다음 행이 없으면 기본값은 0입니다. 이는 차이를 직접 계산하므로 자체 조인이 필요하지 않습니다. 일반적으로 이 방법이 더 빠르고 읽기 쉽습니다.

위 내용은 SQL 테이블에서 행 값 차이를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿