[SQL] Programmers_JOIN. 상품을 구매한 회원 비율 구하기
Programmers_JOIN. 상품을 구매한 회원 비율 구하는 문제를 파헤쳐보자 :)
Programmers_SELECT. 특정 세대의 대장균 찾는 문제를 파헤쳐 보자 :)
ECOLI_DATA 테이블PARENT_ID 는 NULL 값입니다.ID(ID) 를 출력하는 SQL 문을 작성해주세요.ID 에 대해 오름차순 정렬해주세요.SELECT A.ID FROM ECOLI_DATA A JOIN ECOLI_DATA B ON A.PARENT_ID = B.ID JOIN ECOLI_DATA C ON B.PARENT_ID = C.ID WHERE C.PARENT_ID IS NULL ORDER BY A.ID;
FROM ECOLI_DATA A JOIN ECOLI_DATA B ON A.PARENT_ID = B.ID JOIN ECOLI_DATA C ON B.PARENT_ID = C.ID
ECOLI_DATA 테이블을 Self Join하여 개체 간의 부모-자식 관계를 연결한다.A : 현재 개체 (자식)B : A의 부모C : B의 부모 (조상)즉,A는C의 손자(3세대) 관계가 된다.
WHERE C.PARENT_ID IS NULL
C) 중에서 최상위 개체(루트)만 필터링한다.즉, 루트로부터 시작된 계층 구조만 선택
SELECT A.ID ORDER BY A.ID;
A)의 ID를 조회하고 정렬한다.SELECT A.ID FROM ECOLI_DATA A JOIN ECOLI_DATA B ON A.PARENT_ID = B.ID JOIN ECOLI_DATA C ON B.PARENT_ID = C.ID WHERE C.PARENT_ID IS NULL ORDER BY A.ID;
C) → 자식(B) → 손자(A) 구조에서A)만 추출하여ID 기준으로 정렬한다.