distinct & rowid 로 안되서 질문드립니다. 0 5 1,793

by 낭만캐치 [2014.12.10 10:27:01]


안녕하세요!

중복제거를 하고싶은데

1. pk는 ID 인 테이블

2.  ID는 충족하는 값으로 들어올 수 있음

----------------------------------------------------------------------------------------

ID            LOVECODE                 LOVENM

A               121252                      즐거운하루

B               121252                      즐거운하루

C               121252                      즐거운하루

D                212155                     행복하세요

E                212155                     행복하세요

F                212155                     행복하세요

----------------------------------------------------------------------------------------

위와 같은 데이터 형식일 때

원하는 결과값은

 

----------------------------------------------------------------------------------------

 ID LOVECODE                         LOVENM

A  121252                                즐거운하루

F  212155                                행복하세요

----------------------------------------------------------------------------------------

 

이렇게 보게 하고싶은데 어떻게해야할까요?

검색을 해보며 이것저것 해봤는데 모르겠어서 하다가 질문드립니다.

조언부탁드립니다..^^

----------------------------------------------------------------------------------------

좀 더 추가하자면

WITH TEMP AS(

SELECT A.ID

           , A.LOVECODE

          , A.LOVENM

          , (SELECT COUNT(C.LOVESUCCNT)    FROM C C WHERE A.ID = C.ID) AS SucCnt

         , (SELECT COUNT(C..LOVEFAILCNT FROM C C WHERE A.ID = C.ID) AS FailCnt

         FROM A A

                  , B B

WHERE A.ID = B.ID

 

)

SELECT TEMP.ID

          , TEMP.LOVECODE

        , TEMP.LOVENM

       , NVL((FailCnt / DECODE(SucCnt, 0, null, SucCnt), 0) * 100 AS pct

           , TEMP.LOVECODE

          , TEMP.LOVENM

WHERE 1=1

by DarkBee [2014.12.10 10:31:33]

distinct lovecode, lovenm from t


by 아발란체 [2014.12.10 10:45:13]

음.. 아이디 A와 F가 선택 되는 기준이 조금 모호한 것 같네용.

가령 무조건 결과가 2건이라

첫번째는 lovecode, lovenm 기준으로 아이디 값이 가장 빠른 것,

마지막은 lovecode, lovenm 기준으로 아이디 값이 가장 느린 것.. 이라는 단서 같은게 있음 좋겠네용.

만약 아래 처럼 데이타가 있다면 어떻게 조회 되어야 하나용? @.@)?

 

A               121252                      즐거운하루

B               121252                      즐거운하루

C               121252                      즐거운하루

D                212155                     행복하세요

E                212155                     행복하세요

F                212155                     행복하세요

G                212155                     뻥이야

H                212155                     뻥이야

I                212157                      슈크림붕어빵

J                212157                     슈크림붕어빵

K                212155                     뻥이야
 

 


by 낭만캐치 [2014.12.10 10:50:17]

아 제가 질문을 잘못했나보네요ㅜㅜ

LOVECODE 의 LOVENM은 1:1 관계이고

LOVECODE 가 121252 즐거운하루

이고 ID가 5개인 경우 한개만 나오게 하고싶어요..

여기서 ID는 아무거나 와도 상관없어요

LOVECODE에 대한 맵핑만 되면 되거든요


A               121252                      즐거운하루

D                212155                     행복하세요

I                212157                      슈크림붕어빵


by 아발란체 [2014.12.10 10:55:24]

음.. id 아무거나 상관 없다면.. ㅋㅅㅋ)/

WITH T AS (
 SELECT 'A' AS id, '121252' AS lovecode , '즐거운하루' AS lovenm FROM DUAL UNION ALL
 SELECT 'B', '121252', '즐거운하루' FROM DUAL UNION ALL
 SELECT 'C', '121252', '즐거운하루' FROM DUAL UNION ALL
 SELECT 'D', '212155', '행복하세요' FROM DUAL UNION ALL
 SELECT 'E', '212155', '행복하세요' FROM DUAL UNION ALL
 SELECT 'F', '212155', '행복하세요' FROM DUAL UNION ALL
 SELECT 'I', '212157', '슈크림붕어빵' FROM DUAL UNION ALL
 SELECT 'J', '212157', '슈크림붕어빵' FROM DUAL
)
SELECT MAX(id), lovecode, lovenm FROM T GROUP BY lovecode, lovenm
;

 


by 낭만캐치 [2014.12.10 10:58:35]

아 이런 max로 간단하게 하면 되네요!-_-;

흑..ㅜㅜ 아발란체님 감사합니다~!

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