WITH T AS(
SELECT 'C1' SRC_CUST_NO,'C2' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C1' SRC_CUST_NO,'C3' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C1' SRC_CUST_NO,'C4' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C1' SRC_CUST_NO,'C6' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C2' SRC_CUST_NO,'C21' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C2' SRC_CUST_NO,'C22' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C22' SRC_CUST_NO,'C23' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C5' SRC_CUST_NO,'C51' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C5' SRC_CUST_NO,'C52' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C5' SRC_CUST_NO,'C53' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C6' SRC_CUST_NO,'C61' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C7' SRC_CUST_NO,'C71' TRG_CUST_NO FROM DUAL UNION ALL
SELECT 'C6' SRC_CUST_NO,'C62' TRG_CUST_NO FROM DUAL
)
SELECT SRC_CUST_NO,TRG_CUST_NO,LEVEL,CONNECT_BY_ROOT SRC_CUST_NO ROOT,CONNECT_BY_ISLEAF
FROM T
CONNECT BY PRIOR TRG_CUST_NO = SRC_CUST_NO
ORDER BY CONNECT_BY_ROOT SRC_CUST_NO,SRC_CUST_NO,TRG_CUST_NO
;
계층구조로 출력한 데이타에서 ROOT가 동일한 데이타끼리 같은 그룹번호를 부여하려고 합니다.
그런데 C2 나 C6 그룹 같은 경우 이미 C1의 그룹에 출력되었기 때문에 다시 나타나서는 안됩니다.
어떻게 하면 될까요?
(한동안 SQL 에 손을 놓았더니 머리가 안돌아가네요 ㅠㅠ)