데이터 베이스/필요한 쿼리문 기록

[ 쿼리문 ] Mysql 위, 아래 row 값 가져와서 차이구하기

쟈누이 2021. 5. 14. 15:19
반응형

 

 

1. 개요


같은 열 바로 위, 아래 row 값의 차이를 구하고 난 뒤 새로운 테이블을 만들고 싶었다. 

결과물은 아래 이미지와 같다

 

 

 

2. 쿼리문


해답은 row 이전, 이후 값을 가져오는데 쓰이는 lead, lag 함수를 이용하면 되었던 것이다.

lag, lead 함수와 관련된 사항은 아래 링크 참고하여 다시 공부할 것

나의 경우에는 lag 함수를 가져와 뺀다음에 abs 절대값 을 이용하여 - 를 제거해주면 끝이었다.

 

select id,
       years,
       months,
       comment_counts,
       abs(lag(comment_counts, 1, comment_counts) over (order by comment_counts) - comment_counts ) as diff
from monitor_counts;

 

 

 

3. 참고링크


https://it-mi.tistory.com/56

 

MySQL | LEAD, LAG 윈도우 함수

1. MySQL LEAD Function LEAD()함수는 현재 행에서 여러 행을 보고 해당 행의 데이터에 액세스 할 수 있는 윈도우 함수입니다. LAG()함수와 비슷하며, LEAD()기능은 현재 행과 동일한 결과 집합 내의 후속

it-mi.tistory.com

 

반응형