형제 그룹을 식별하기 위해 일부 레코드를 함께 연결하려고합니다. 우리가 할 수있는 방법은 같은 부모님을 공유하는 고객을 찾는 것입니다.하나 또는 여러 기준으로 레코드 연결 및 계산
는 SQL의 샘플은 다음과 같습니다
다음과 같은 형식으로 데이터를 반환SELECT
A.ClientID,
B.ParentID
FROM A
LEFT JOIN B ON B.ClientID to A.ClientID
AND B.REL_END is NULL AND B.REL_CODE = 'PAR'
:
Client ID Parent ID
1 A
1 B
2 C
2 D
3 C
3 E
4 C
4 D
나는 그것을 표시 할 방법은 다음과 같습니다
Client ID No. of Siblings
1 0
2 2
3 2
4 2
바라건대 테이블에 따르면 자식 1에는 0 형제가 있고 (2,3,4를 가진 부모는 없습니다), 자식 2는 형제가 2 개 (3 및 4), 자식 3은 2 명의 형제 (2 및 4), 자식 4는 2 명의 형제 (2,3)가 있습니다. 이 일을 성취 할 수있을만큼 간단해야 할 것 같지만, 어떻게 생각 하느냐에 관해서는 정말 고심하고 있습니다! 나는 아이가 하나의 부모만을 다른 아이와 형제로 간주하기 때문에 약간 혼란 스럽다고 생각합니다.
잘하면 감사합니다.
편집 : 관계를 명확히하기 위해 부모 ID를 다른 자식과 공유하는 자식이 관계를 식별합니다 (ID는 고유하지만이 예에서는 일반적인 ID를 제공했습니다). 따라서 어린이 2, 3 및 4는 모두 C라는 ID를 가진 부모를 가졌으므로 형제로 간주됩니다.
@ Gordon Linoff : 답장을 보내 주셔서 감사합니다. 불행히도, 나는 또한 아이가 부모를 공유했지만 그 부모가 정확히 동일하지는 않았다 (아이 1은 부모 a와 b를 가질 수 있었고 아이 2는 부모 a와 c를 가질 수 있음) -이 경우 부모님을 공유하는 형제로 간주 될 수 있습니다.) - 저는 이것을 실행했으며 확실히 한 부모를 공유하는 사람이 아니라 같은 부모를 가진 사람을 선택합니다. 그래도 적어도 내가 생각했던 것처럼 간단하지는 않다는 것을 안심할 수는 있습니다. – bawpie
감사합니다. 두 번째 쿼리가 제대로 작동하는 것 같습니다. 귀하의 도움을 많이 부탁드립니다! – bawpie