SQL/SELECT

[프로그래머스 SQL] Lv.2 - 부모의 형질을 모두 가지는 대장균 찾기

이런개발 2025. 3. 1. 20:43

https://school.programmers.co.kr/learn/courses/30/lessons/301647

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 풀이

  1. ECOLI_DATE 테이블을 자체 조인한다. PARENT_ID와 ID가 같은 행끼리 조인한다.
  2. 부모의 형질을 모두 보유한 행을 필터링한다. 필터링 조건은 부모의 형질을 모두 보유해야 하므로 부모와 자식의 형질끼리 AND 연산했을 때 부모의 형질과 같아야 한다.
  3. ID를 기준으로 오름차순 정렬한다.
  4. 대장균 ID, 대장균 형질, 부모 대장균 형질을 조회한다.
SELECT
    sub.ID,
    sub.GENOTYPE,
    m.GENOTYPE AS PARENT_GENOTYPE
FROM
    ECOLI_DATA sub
        JOIN ECOLI_DATA m ON sub.PARENT_ID = m.ID
WHERE
    (sub.GENOTYPE & m.GENOTYPE) = m.GENOTYPE
ORDER BY
    1