mysql 쿼리 질문입니다.
그림과 같이 auto increment로 생성한 PK인 ID 컬럼과, 번호, 컬럼A, 컬럼B, 컬럼C, 최초등록일자, 최종등록일자로 이루어진 테이블입니다.
먼저 번호 컬럼을 그룹화하고 최종수정일자를 그룹화하면
번호 4020201은 2개의 최종수정일자 그룹이 존재하고
번호 4020202는 1개의 최종수정일자 그룹이 존재하고
번호 4020203은 2개의 최종수정일자 그룹이 존재합니다.
이때 최종수정일자 그룹이 2개 이상인 번호그룹만 남겨두고 또한 최종수정일자 그룹을 비교하여 수정일자가 이전일자인 row의 ID 값을 알고 싶습니다.
한번의 쿼리로 그림의 아래와 같은 결과를 조회하고 싶은데..
조언 부탁드립니다.
감사합니다!
SELECT T1.* FROM TABLE1 T1 ,( SELECT 번호, MIN(최종수정일자) AS 최종수정일자 FROM TABLE1 GROUP BY 번호 HAVING COUNT(DISTINCT 최종수정일자) > 1 ) T2 WHERE T1.번호= T2.번호 AND T1.최종수정일자= T2.최종수정일자
결국은 번호별로 최종수정일자가 2종 이상인 것을 먼저 골라야 겠네요.
그리고 그 2종 중에 작은 값을 가져야 할테고요.
T2 에 기술한 항목이 위의 두가지 조건을 가지고 필터링 되는 항목 입니다.
그래서 번호와 최종수정일자를 원본과 다시 JOIN 해서 원하는 값을 도출할 수 있을 거 같네요