안녕하세요 우연히 네이버 검색하다 좋은 사이트를 알게 되어 가입했습니다^^
제목대로 연결 고리 찾는 쿼리를 만들고 싶은데 여간해서 안 되네요 ㅠㅠ
내용인즉슨, 아래와 같은 컬럼이 4개(C1, C2, C3, C4) 있습니다.
C1 C2 C3 C4
-----------------------
1 A B C
2 A S T
3 A C D
4 B C D
5 D E F
6 E G H
7 X Y Z
8 K A B
9 L M N
10 Q P R
연결고리를 찾으려고 하는데요,
위에 값 중에 A가 1, 2, 3, 8 번에 있습니다.
그럼 그 옆에 있는 1번의 B, C, 2번의 S, T, 3번의 C, D, 8번의 K, B는 A와 관계를 갖는 값이 되고
아래와 같이 표현하고 싶습니다.(중복제거)
A A - 항상 대표가 되는 값은 관계를 갖는 값을 가져야 함.
A B
A C
A D
A K
A S
A T
그 다음 B의 값은 1, 4, 8번에 있습니다.
1번의 A, C, 4번의 C, D, 8번의 K, A는 B와 관계를 갖는 값이 되고
위와 같은 방식으로 표현하고 싶지만, C, D, K, A는 모두 위의 A와 관계를 맺고 있기 때문에 B의 관계에서 제외합니다.
C의 경우도 같은 형태여서 생략하고, D의 경우를 보겠습니다.
D의 값은 3, 4, 5번에 있습니다.
3번의 A, C, 4번의 B, C, 5번의 E, F와 관계를 갖는 값이 되는데, 3번과 4번은 이미 A와 관계를 맺고 있기 때문에 제외하고
5번의 E, F에 대해서만 위와 같은 형태로 표현하면 아래와 같이 됩니다.
D E
D F
D의 값은 A와 관계를 맺고 있는 값 중에 하나이기 때문에 위의 E, F 또한 A와 관계를 맺는 형태로 표현하고 싶습니다.
A A - 항상 대표가 되는 값은 관계를 갖는 값을 가져야 함.
A B
A C
A D
A K
A S
A T
A E - D와 관계를 맺는 값이나 D의 대표가 A이므로 A와 연결
A F - D와 관계를 맺는 값이나 D의 대표가 A이므로 A와 연결
이런 식으로 6번을 보면 E는 G와 H랑 관계를 맺고 있고, E의 대표는 A이므로 G와 H 또한 A를 대표로 하는 관계가 됩니다.
A A - 항상 대표가 되는 값은 관계를 갖는 값을 가져야 함.
A B
A C
A D
A K
A S
A T
A E - D와 관계를 맺는 값이나 D의 대표가 A이므로 A와 연결
A F - D와 관계를 맺는 값이나 D의 대표가 A이므로 A와 연결
A G - E와 관계를 맺는 값이나 E의 대표가 A이므로 A와 연결
A H - E와 관계를 맺는 값이나 E의 대표가 A이므로 A와 연결
...(중략)...
나머지 7, 9, 10번의 세 값들은 나머지 행들과 관계를 맺는 값이 없으므로 자기 행에서 아무 값이나 대표로 해서 관계를 만듭니다.
X X
X Y
X Z
L L
L M
L N
Q Q
Q P
Q R
최종 결과 값은 아래와 같습니다.
A A - 항상 대표가 되는 값은 관계를 갖는 값을 가져야 함.
A B
A C
A D
A K
A S
A T
A E - D와 관계를 맺는 값이나 D의 대표가 A이므로 A와 연결
A F - D와 관계를 맺는 값이나 D의 대표가 A이므로 A와 연결
A G - E와 관계를 맺는 값이나 E의 대표가 A이므로 A와 연결
A H - E와 관계를 맺는 값이나 E의 대표가 A이므로 A와 연결
X X
X Y
X Z
L L
L M
L N
Q Q
Q P
Q R
이런 식의 결과값을 출력하는 쿼리를 만들 수 있을까요?^^
한가지 덧붙이자면, 오라클에서만 사용할 수 있는 오라클 전용함수를 사용하지 않는 쿼리로도 가능할까요?
넘 어렵네요 저는 ㅠㅠ