반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
EOCLI_DATA 테이블이 있을때, ID, GENOTYPE, 그리고 부모의 GENOTYPE을 출력하는 SQL문을 작성해주세요 (부모의 GENOTYPE은 PARENT_ID로 id값을 확인할 수 있으며, GENOTYPE을 이진수로 변환했을 때, 자식 형질의 비트가 부모 형질의 비트에 포함되어있는 것만 출력합니다.)
SELECT A.ID, A.GENOTYPE, B.GENOTYPE AS PARENT_GENOTYPE
FROM ECOLI_DATA A, ECOLI_DATA B
WHERE A.PARENT_ID = B.ID AND A.GENOTYPE & B.GENOTYPE = B.GENOTYPE
ORDER BY ID ASC
SELECT A.ID, A.GENOTYPE, B.GENOTYPE AS PARENT_GENOTYPE
- 테이블 ECOLI_DATA에서 자식의 ID와 유전자형(GENOTYPE), 그리고 부모의 유전자형(GENOTYPE)을 선택합니다.
FROM ECOLI_DATA A, ECOLI_DATA B
- 같은 테이블인 ECOLI_DATA를 두 번 참조합니다.
- A: 자식 데이터로 사용할 테이블의 별칭
- B: 부모 데이터로 사용할 테이블의 별칭
WHERE A.PARENT_ID = B.ID
- 자식 데이터(A)의 PARENT_ID가 부모 데이터(B)의 ID와 동일한 경우를 찾습니다.
- 즉, 자식과 부모의 관계를 설정합니다.
AND A.GENOTYPE & B.GENOTYPE = B.GENOTYPE
- 자식의 유전자형(A.GENOTYPE)과 부모의 유전자형(B.GENOTYPE)을 비트 AND 연산(&)합니다.
- 그 결과가 부모의 유전자형과 동일할 때만 해당 데이터를 반환합니다.
- 즉, 부모의 유전자형이 자식 유전자형에 완전히 포함되어 있는 경우를 필터링합니다.
ORDER BY ID ASC
- 결과를 자식 데이터의 ID를 기준으로 오름차순(작은 값부터 큰 값 순서)으로 정렬합니다.
반응형
LIST
'알고리즘 문제 > 프로그래머스' 카테고리의 다른 글
프로그래머스 연도별 대장균 크기의 편차 구하기 [Lv. 2] (MySQL) (0) | 2024.10.17 |
---|---|
프로그래머스 조건에 맞는 개발자 찾기 [Lv. 2] (MySQL) (1) | 2024.10.16 |
프로그래머스 석유 시추 [Lv. 2] (C++) (0) | 2024.10.16 |
프로그래머스 충돌위험 찾기 [Lv. 2] (C++) (0) | 2024.10.15 |
프로그래머스 퍼즐 게임 챌린지 [Lv. 2] (C++) (2) | 2024.10.14 |