집 >데이터 베이스 >MySQL 튜토리얼 >SQL SELECT 문에서 이전 행 값에 어떻게 액세스하고 사용할 수 있습니까?
SQL SELECT 쿼리 내에서 이전 행 데이터 검색
이 가이드에서는 SQL 테이블의 연속 행 간의 차이를 계산하는 문제를 다룹니다. 표준 SQL에는 고유한 행 순서 고려 사항이 없기 때문에 간단한 빼기만으로는 충분하지 않습니다. 해결책은 LAG
기능을 활용하는 것입니다.
LAG
함수는 SELECT
문 내의 이전 행에서 데이터를 검색합니다. 구문은 다음과 같습니다.
<code class="language-sql">LAG(column_name, offset, default) OVER (ORDER BY order_column)</code>
다음은 분석입니다.
column_name
: 이전 행에서 필요한 데이터가 포함된 열입니다.offset
: 되돌아볼 행 수를 지정합니다(바로 앞 행의 경우 1).default
: offset
이 첫 번째 행을 초과하는 경우 반환되는 값입니다.order_column
: 행 순서를 정의하는 열입니다.구현 예:
value
열을 기준으로 정렬된 연속 Id
항목 간의 차이를 계산하려면 다음을 수행하세요.
<code class="language-sql">SELECT value - LAG(value, 1, 0) OVER (ORDER BY Id) AS difference FROM your_table;</code>
이 쿼리는 현재 행의 value
에서 이전 행의 value
(오프셋 1)을 뺍니다. Id
열은 올바른 순서를 보장하여 비순차적인 Id
값으로 인해 발생하는 문제를 방지합니다. 0
기본값은 첫 번째 행을 처리하여 오류를 방지합니다. 결과는 계산된 변형을 보여주는 새로운 difference
열입니다.
위 내용은 SQL SELECT 문에서 이전 행 값에 어떻게 액세스하고 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!