DBMS/MySQL

[MySQL 5.7] 이전 행, 다음 행 가져오기

DevPing9_ 2023. 5. 9. 19:17

 

MySQL 8 버전 부터는 LAG(이전 행) 와 LEAD(다음 행) 함수를 지원한다.

 

하지만 MySQL 5.7 은 없지롱 ㅎㅎ..

 

스칼라 서브쿼리로 대체할 수 있다.


LAG (이전 행 값 구하기)

SELECT a.login_id, a.name, a.reg_time
    (SELECT reg_time FROM user b
    WHERE a.login_id = b.login_id AND a.reg_time > b.reg_time 
    ORDER BY reg_time DESC LIMIT 1) as lag_reg_time
FROM user a

 

LEAD (다음 행 값 구하기)

SELECT a.login_id, a.name, a.reg_time
    (SELECT reg_time FROM user b
    WHERE a.login_id = b.login_id AND a.reg_time < b.reg_time 
    ORDER BY reg_time DESC LIMIT 1) as lead_reg_time
FROM user a

 

728x90