안녕하세요.
GROUP BY 를 이용해야 할것 같은데 도저히 머리가 돌아가지 않네요.
한방 쿼리로 가능한지 다른 방향으로 개발을 해야 할지 알려주세요..
NAME 이 같은 것중에서 NUM 에 갯수가 2개 이상이며, CODE 가 일부 틀린 NUM 를 찾는 쿼리입니다.
---- 데이터
WITH DATA AS (
SELECT '우리집' NAME, '101' NUM, 'X01' CODE
UNION ALL SELECT '우리집' NAME, '101' NUM, 'X02' CODE
UNION ALL SELECT '우리집' NAME, '101' NUM, 'X03' CODE
UNION ALL SELECT '이정표' NAME, '201' NUM, 'A01' CODE
UNION ALL SELECT '이정표' NAME, '201' NUM, 'A02' CODE
UNION ALL SELECT '이정표' NAME, '202' NUM, 'A01' CODE
UNION ALL SELECT '이정표' NAME, '202' NUM, 'A02' CODE
UNION ALL SELECT '간담회' NAME, '301' NUM, 'T01' CODE
UNION ALL SELECT '간담회' NAME, '301' NUM, 'T02' CODE
UNION ALL SELECT '간담회' NAME, '302' NUM, 'T01' CODE
UNION ALL SELECT '간담회' NAME, '302' NUM, 'T04' CODE
UNION ALL SELECT '간담회' NAME, '303' NUM, 'T01' CODE
UNION ALL SELECT '간담회' NAME, '303' NUM, 'T05' CODE
UNION ALL SELECT '휴대폰' NAME, '401' NUM, 'P01' CODE
UNION ALL SELECT '휴대폰' NAME, '401' NUM, 'P02' CODE
UNION ALL SELECT '휴대폰' NAME, '402' NUM, 'P03' CODE
UNION ALL SELECT '휴대폰' NAME, '402' NUM, 'P04' CODE
UNION ALL SELECT '휴대폰' NAME, '403' NUM, 'P05' CODE
)
SELECT * FROM DATA
;
1. 우리집 : NUM 가 1개라서 나오지 않는다. 결과 : X
2. 이정표 : NUM 가 2개지만 NUM가 가지는 CODE 값이 동일. 결과 : X
3. 간담회 : NUM 가 3개이고 모든 NUM 가 CODE = T01 일부만 가지고 있음. 결과 : O
4. 휴대폰 : NUM 가 3개지만 NUM가 모두 다른 CODE 를 가지고 있어서 조회되면 안됌. 결과 : X
결과
-------------------------
간담회 301
간담회 302
간담회 303
--------------------------
고수분들에 답변 기다립니다.
감사합니다.
|