test 라는 테이블에 service_id, version , name 컬럼이 있고
select service_id , version , name from test ; 해서 전체를 조회할때
동일한 service_id 에 대한 name 칼럼 정보만 중복 제거해서 보고 싶은데 어떻게 쿼리해야할까요
결과 ex)
service_id | version | name
1 1 a
1 2 b
1 3 b -- x
2 1 a
2 2 a -- x
Comment 1
-
초짜해커
2014.07.25 17:26
DECLARE @DATA TABLE (Service_ID INT, Version INT, Name VARCHAR(10))INSERT @DATASELECT 1, 1, 'a' UNION ALLSELECT 1, 2, 'b' UNION ALLSELECT 1, 3, 'b' UNION ALLSELECT 2, 1, 'a' UNION ALLSELECT 2, 2, 'a'SELECT Service_ID, Version, NameFROM (SELECT *, 순위 = ROW_NUMBER() OVER(PARTITION BY Service_ID, Name ORDER BY Service_ID)FROM @DATA) AWHERE 순위 = 1