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