>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 LAG 기능을 시뮬레이션하는 방법은 무엇입니까?

MySQL에서 LAG 기능을 시뮬레이션하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-18 01:17:07920검색

How to Simulate a LAG Function in MySQL?

MySQL에서 LAG 기능 시뮬레이션

MySQL 자체에서는 연속된 행 간의 값 차이를 계산하는 LAG 함수를 지원하지 않습니다. 그러나 다음과 같은 방법으로 LAG 기능의 기능을 시뮬레이션할 수 있습니다.

LAG 기능 시뮬레이션

다음 SQL 문은 MySQL의 LAG 기능을 시뮬레이션합니다.

<code class="language-sql">SET @quot=-1;
select time,company,@quot lag_quote, @quot:=quote curr_quote
  from stocks order by company,time;</code>

여기서, @quot은 이전 행의 인용문을 저장하는 데 사용되는 사용자 정의 변수입니다. 첫 번째 줄의 경우 @quot은 -1로 초기화됩니다. curr_quote현재 줄의 인용문을 저장합니다.

맞춤형 결과

위 시뮬레이션은 히스테리시스 값을 제공하지만, 질문에 지정된 형식으로 결과를 제시하지는 않습니다. 이 형식을 얻으려면 다음 중첩 쿼리를 사용할 수 있습니다.

<code class="language-sql">SET @quot=0,@latest=0,company='';
select B.* from (
select A.time,A.change,IF(@comp=A.company,1,0) as LATEST,@comp:=A.company as company from (
select time,company,quote-@quot as change, @quot:=quote curr_quote
from stocks order by company,time) A
order by company,time desc) B where B.LATEST=1;</code>

이 중첩 쿼리는 견적 차이를 계산하고 각 회사의 마지막 행을 식별하여 필요한 형식으로 출력을 생성합니다.

위 내용은 MySQL에서 LAG 기능을 시뮬레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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