중복시 데이터 하나만 표시 하고 싶습니다. 0 4 24,545

by 지후 [MySQL] 중복 My SQL [2015.10.23 18:47:01]


중복시 데이터 하나만 표시 하고 싶습니다.
테이블 구조는 이렇습니다. 테이블명: Test
ID  | Name |
1   | 롯데   |
2   | 해태   |
3   | 롯데   |
4   | 삼양   |
5   | 삼양   |

원하는 응답 값은 이렇습니다.

ID  | Name |
1   | 롯데   |
2   | 해태   |
4   | 삼양   |

테이블에 데이터는 그대로 있고 중복없는 것은 그대로 한개만 표시 하고 중복이 있으면 한개만 표시하고 싶습니다.

"SELECT ID, MIN(ID), Name FROM Test GROUP BY ID, Name"
다른 게시물 찾아서 이렇 해봤는데 안되네요;;
(MY SQL) 입니다. 답변 부탁드립니다.

by 임상준 [2015.10.23 18:53:46]

SELECT MIN(ID), Name FROM Test GROUP BY Name 이거 아닐까요?


by 지후 [2015.10.26 10:11:54]

이렇게 하니 잘 되네요. 답변 감사합니다.


by 김무경 [2015.10.26 15:01:03]

MYSQL은 DISTINCT 가 없나 보네요?


by 날자~! [2015.10.29 11:07:44]

 

[오라클 기준]

 

with data
as
(select 1 id, '롯데' name from dual
 union all
 select 2 id, '해태' name from dual
 union all
 select 3 id, '롯데' name from dual
 union all
 select 4 id, '삼양' name from dual
 union all
 select 5 id, '삼양' name from dual
)
select *
from (
        select a.*
             , row_number() over( partition by name order by id ) rnk
        from data a
     )   
where rnk = 1
order by id

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