https://school.programmers.co.kr/learn/courses/30/lessons/301650
[문제]
3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요.
[나의 풀이]
SELECT ID
FROM ECOLI_DATA
WHERE PARENT_ID IN (
SELECT ID
FROM ECOLI_DATA
WHERE PARENT_ID IN (
SELECT ID
FROM ECOLI_DATA
WHERE PARENT_ID IS NULL))
ORDER BY ID;
[다른 풀이]
1) WITH절을 이용한 경우
WITH FirstGen AS (
SELECT ID
FROM ECOLI_DATA
WHERE PARENT_ID IS NULL
),
SecondGen AS (
SELECT ID
FROM ECOLI_DATA
WHERE PARENT_ID IN (SELECT ID FROM FirstGen)
)
SELECT ID
FROM ECOLI_DATA
WHERE PARENT_ID IN (SELECT ID FROM SecondGen)
ORDER BY ID;
2) JOIN을 이용한 경우
SELECT ED3.ID
FROM ECOLI_DATA AS ED1
INNER JOIN ECOLI_DATA AS ED2
ON ED1.ID = ED2.PARENT_ID AND ED1.PARENT_ID IS NULL
INNER JOIN ECOLI_DATA AS ED3
ON ED3.PARENT_ID = ED2.ID;
-출처
https://passionfruit200.tistory.com/1326
'프로그래머스 > My SQL' 카테고리의 다른 글
상품을 구매한 회원 비율 구하기 (1) | 2024.12.30 |
---|---|
연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (1) | 2024.12.28 |
특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.12.27 |
자동차 대여 기록 별 대여 금액 구하기 (0) | 2024.12.26 |
저자 별 카테고리 별 매출액 집계하기 (0) | 2024.12.25 |