안녕하세요!
중복제거를 하고싶은데
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
음.. 아이디 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 뻥이야
음.. 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 ;