안녕하세요.
좀 막히는 쿼리가 있어 조언을 구합니다.
필드 단위로 최대로 많이 같은값이 있는 SEQ와 카운트를 구하고 싶습니다.
설명하기가 어려워 예제를 들면
WITH
V_TEMP AS (
SELECT 'A' AS SEQ, '사과' AS T1, '배' AS T2, '자두' AS T3, '딸기' AS T4, 0 AS SUM_QTY, '' AS TARGET_SEQ FROM DUAL
UNION ALL
SELECT 'B' ,'배', '수박', '바나나', '', 0 AS SUM_QTY, '' AS TARGET_SEQ FROM DUAL
UNION ALL
SELECT 'C', '메론', '바나나', '자두', '딸기', 0 AS SUM_QTY, '' AS TARGET_SEQ FROM DUAL
UNION ALL
SELECT 'D', '메론', '', '', '', 0 AS SUM_QTY, '' AS TARGET_SEQ FROM DUAL
UNION ALL
SELECT 'E', '배', '바나나', '메론', '딸기', 0 AS SUM_QTY, '' AS TARGET_SEQ FROM DUAL
UNION ALL
SELECT 'F', '자두' , '딸기' , '사과' , '배' , 0 AS SUM_QTY, '' AS TARGET_SEQ FROM DUAL
)
SELECT * FROM V_TEMP
예를 들면 위와 같은 데이터가 있을때 SUM_QTY 필드에
만약 SEQ가 A 인 경우 SUM_QTY 의 값에는 4 ,TARGET_SEQ 의 값은 F <--------( F 에 자두, 딸기, 사과 , 배) 가 가장 많이 일치하므로.
같은방식으로
SEQ가 B 인 경우 SUM_QTY 의 값에는 2, TARGET_SEQ 의 값은 E
만약 SEQ가 C 인 경우 SUM_QTY 의 값에는 2, TARGET_SEQ 의 값은 A
만약 SEQ가 D 인 경우 SUM_QTY 의 값에는 1, TARGET_SEQ 의 값은 C 또는 E
만약 SEQ가 E 인 경우 SUM_QTY 의 값에는 2, TARGET_SEQ 의 값은 A 또는 B 또는 F
만약 SEQ가 F 인 경우 SUM_QTY 의 값에는 4, TARGET_SEQ 의 값은 A
고수님 제발 도와주시면 감사하겠습니다.
|