설명만으로는 석연치 않은 부분이 많은데요.
좀 더 다양하고 복잡한 예시자료로 질문해 주실 수 있나요?
원본 대비 출력 자료도 표형태로 보여주세요.
예를 들면 (가 나 다) 에 (10, -10, 20, -20) 이 있다면?
합해서 0 이 되는 묵음은 하나로 합쳐지고
(0, 0) 이 되면 중복인가요?
출력은 어떤 형태로 해야 하는지?
만약, (가 나 다) 에 (10, -10, -10, 10, 10) 이 있다면?
(0, 0, 10) 이 되는 건가요?
이런 자료는 중복인가요? 아닌가요?
출력은 어떤 형태로 해야 하는지?
(라 마 바) 엔 (10, 10) 이라 중복이라 출력인데?
출력은 한번만 하는지 두번 다 하는지?
만약 (라 마 바) 에 (10) 이 1건 뿐이라면?
이건 중복인가요? 아닌가요?
출력은 어떤 형태로 해야 하는지?
네 마농님 안녕하세요.
Aa bb cc칼럼이 동일할때 dd가 10 이있고 여기서 그대로 마이너만 붙은 -10이존재하는건은 제외입니다. 이건 중복아님
즉, 합산이 0이여도 10, -4, -6 이런것도 합산해도 0이지만 이건 중복포함.
*데이타
AA BB CC DD
가 나 다 10
가 나 다 -10
가 나 다 20
라 마 바 10
라 마 바 10
출력 라마바 10
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
*데이타
AA BB CC DD
가 나 다 10
가 나 다 -4
가 나 다 -6
가 나 다 10
라 마 바 10
라 마 바 10
출력 가나다10
라마바10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | WITH t AS ( SELECT '가' aa, '나' bb, '다' cc, 10 dd FROM dual UNION ALL SELECT '가' , '나' , '다' , -10 FROM dual UNION ALL SELECT '가' , '나' , '다' , 20 FROM dual UNION ALL SELECT '라' , '마' , '바' , 10 FROM dual UNION ALL SELECT '라' , '마' , '바' , 10 FROM dual UNION ALL SELECT '사' , '아' , '자' , 10 FROM dual UNION ALL SELECT '사' , '아' , '자' , -4 FROM dual UNION ALL SELECT '사' , '아' , '자' , -6 FROM dual UNION ALL SELECT '사' , '아' , '자' , 10 FROM dual UNION ALL SELECT '차' , '카' , '타' , 10 FROM dual UNION ALL SELECT '차' , '카' , '타' , -10 FROM dual UNION ALL SELECT '차' , '카' , '타' , -10 FROM dual UNION ALL SELECT '차' , '카' , '타' , 10 FROM dual UNION ALL SELECT '차' , '카' , '타' , 10 FROM dual UNION ALL SELECT '타' , '파' , '하' , 10 FROM dual UNION ALL SELECT '타' , '파' , '하' , 10 FROM dual UNION ALL SELECT '타' , '파' , '하' , 20 FROM dual UNION ALL SELECT '타' , '파' , '하' , 20 FROM dual ) SELECT aa, bb, cc, dd FROM ( SELECT aa, bb, cc , SUM (dd) dd FROM ( SELECT aa, bb, cc, dd , ROW_NUMBER() OVER(PARTITION BY aa, bb, cc, dd ORDER BY 1) rn FROM t ) GROUP BY aa, bb, cc, ABS (dd), rn ORDER BY aa, bb, cc, ABS (dd), rn ) -- WHERE dd != 0 GROUP BY aa, bb, cc, dd HAVING COUNT (*) > 1 ORDER BY aa, bb, cc, dd ; |