https://school.programmers.co.kr/learn/courses/30/lessons/301647#qna
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
부모의 형질을 모두 보유한 대장균의 ID(ID), 대장균의 형질(GENOTYPE), 부모 대장균의 형질(PARENT_GENOTYPE)을 출력하는 SQL 문을 작성해주세요. 이때 결과는 ID에 대해 오름차순 정렬해주세요.
풀이
-- 코드를 작성해주세요
SELECT a1.id, a1.genotype, a2.genotype AS parent_genotype
FROM ecoli_data a1
LEFT JOIN ecoli_data a2
ON a1.parent_id = a2.id
WHERE (a1.genotype & a2.genotype) = a2.genotype
ORDER BY a1.id;
같은 테이블네 종속된 컬럼쌍이 존재하므로 셀프조인 사용. -> a1은 일반 id용 테이블, a2는 parent_id용 테이블
a1테이블은 부모의 형질을 모두 가지고 있어야 하므로 교집합 했을시 부모의 형질만 튀어나옴
따라서 조건절에 (a1.genotype & a2.genotype) = a2.genotype 와 같이 연산
'코딩 테스트 > SQL' 카테고리의 다른 글
| [프로그래머스 - LEVEL 4] 특정 세대의 대장균 찾기 ⛔️ (0) | 2026.02.13 |
|---|---|
| [프로그래머스 - LEVEL 3] 대장균의 크기에 따라 분류하기 2 ⛔️ (0) | 2026.02.13 |
| [프로그래머스 - LEVEL 1] 특정 형질을 가지는 대장균 찾기 (0) | 2026.02.12 |
| [프로그래머스 - LEVEL 3] 대장균의 크기에 따라 분류하기 1 (0) | 2026.02.12 |
| [프로그래머스 - LEVEL 3] 대장균들의 자식의 수 구하기 (0) | 2026.02.12 |