현재 A,B 테이블 조인을 하여서 데이터를 조회했는데
-- 데이터 출력
A B C D A
A B C D B
A B C D C
A B C D D
위와같이 동일한 데이터는 존재하지만 다른 데이터가 하나가 달라서 여러 ROW가 출력되는 상황입니다.
여러 ROW 중 A B C D A 처럼 한 ROW만 나오게 하고 싶은데 이렇게 하려면.. 중복이 안되는 컬럼을 조회 데이터에 넣지 않아야 하나요?... 방법이 있다면 설명해주시면 감사하겠습니다!!
-- 0. 여러 행의 자료 중 어떤 행을 선택해야 할지? 기준을 정하셔야 합니다.
-- 1. 가장 작은 값 추출
SELECT c1, c2, c3, c4
, MIN(c5) c5
FROM ...
WHERE ...
GROUP BY c1, c2, c3, c4
;
-- 2. 가장 최신 값 추출
SELECT *
FROM (SELECT c1, c2, c3, c4, c5
, ROW_NUMBER() OVER(PARTITION BY c1, c2, c3, c4 ORDER BY dt DESC) rn
FROM ...
WHERE ...
) a
WHERE rn = 1
;
감사합니다~!!