Postgresql 중복값 제거 0 1 2,805

by 커피는스벅 [SQL Query] 중복 postgresql sql 쿼리 [2017.09.22 11:08:47]


postgresql 에서 중복값 제거 하는 쿼리를 짜고 있는데 잘 안되어 질문 드립니다 ㅠㅠ

부서코드 상위부서코드 부서명
D10 D1 경리
D10 D1 경리
D11 D1 영업
D1 D0 <-최상위 사장
D0   회사
D2 D0 기술
D20 D2 기술1
D20 D2 기술1

위와 같은 테이블이 있다고 가정하였을 때

아래와같이 부서코드나 상위부서코드는 중복되어도 상관이 없는데

부서명이 하나씩만 나오도록 나머지 행에 대해서는 삭제 하고 싶습니다.

부서코드 상위부서코드 부서명
D10 D1 경리
D11 D1 영업
D1 D0 사장
D0   회사
D2 D0 기술
D20 D2 기술1

특정한 조건 없이 부서명이 중복 되면 하나만 남기고 삭제하는 쿼리 질문드립니다 ㅠㅠ

Group by 를 사용하거나 해봤는데도 막히네요..

고수분들 도움부탁드리겠습니다!

by 주킹 [2017.09.22 12:52:58]

delete from table명 t1 using

table명 t2

where t1.부서코드=t2.부서코드 and t1.상위부서코드=t2.상위부서코드 and t1.부서명=t2.부서명

 and t1.ctid<t2.ctid;

이런식으로 셀프조인해서  블록 ID값으로 지우셔도 됩니다.

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