데이터 중복제거(?) 방법 질문드립니다! 0 2 558

by 라면용 [Oracle 기초] [2022.03.14 12:51:24]


현재 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만 나오게 하고 싶은데 이렇게 하려면.. 중복이 안되는 컬럼을 조회 데이터에 넣지 않아야 하나요?... 방법이 있다면 설명해주시면 감사하겠습니다!!

by 마농 [2022.03.14 13:19:15]
-- 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
;

 


by 라면용 [2022.03.14 15:29:46]

감사합니다~!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입