Today Yewon Learned

[SQL] MySQL 그룹 별 최신 데이터 가져오기 본문

SQL

[SQL] MySQL 그룹 별 최신 데이터 가져오기

데브워니 2022. 1. 21. 15:02

js_machine_state_log 로그 데이터가 쌓이는 테이블

파란색 박스 데이터보다 빨간색 박스 데이터가 더 최신 데이터이다.

 

MAC_CD별로 최신에 쌓인 로그 데이터만 추출하고자 한다.

 

 

1. MAX값 지정 후 GROUP BY를 통해 중복 제거

SELECT MAC_CD, MAX(STATE_DATE) AS STATE_DATE
    FROM js_machine_state_log GROUP BY MAC_CD

 

 

2. 전체 검색 후, ORDER BY를 통해 순서대로 정렬

SELECT *
	FROM js_machine_state_log AS T1
    WHERE (MAC_CD, STATE_DATE)IN(
    SELECT MAC_CD, MAX(STATE_DATE) AS STATE_DATE
    FROM js_machine_state_log GROUP BY MAC_CD
    )
    ORDER BY MAC_CD ASC;

[참조] https://myhappyman.tistory.com/76

Comments