티스토리 뷰
-- 코드를 작성해주세요
WITH RECURSIVE generations AS (
-- 1세대: 최초 세포
SELECT
ID,
PARENT_ID,
1 AS generation
FROM ECOLI_DATA
WHERE PARENT_ID IS NULL
UNION ALL
-- 다음 세대: 부모가 이전 세대
SELECT
e.ID,
e.PARENT_ID,
g.generation + 1
FROM ECOLI_DATA e
JOIN generations g ON e.PARENT_ID = g.ID
)
SELECT ID
FROM generations
WHERE generation = 3
ORDER BY ID ASC;
https://school.programmers.co.kr/learn/courses/30/lessons/301650
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다.
다음은 실험실에서 배양한 대장균들의 정보를 담은 ECOLI_DATA 테이블입니다. ECOLI_DATA 테이블의 구조는 다음과 같으며, ID, PARENT_ID, SIZE_OF_COLONY, DIFFERENTIATION_DATE, GENOTYPE 은 각각 대장균 개체의 ID, 부모 개체의 ID, 개체의 크기, 분화되어 나온 날짜, 개체의 형질을 나타냅니다.
Column name Type Nullable
ID INTEGER FALSE
PARENT_ID INTEGER TRUE
SIZE_OF_COLONY INTEGER FALSE
DIFFERENTIATION_DATE DATE FALSE
GENOTYPE INTEGER FALSE
최초의 대장균 개체의 PARENT_ID 는 NULL 값입니다.
문제
3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요.
예시
예를 들어 ECOLI_DATA 테이블이 다음과 같다면
ID PARENT_ID SIZE_OF_COLONY DIFFERENTIATION_DATE GENOTYPE
1 NULL 10 2019/01/01 5
2 NULL 2 2019/01/01 3
3 1 100 2020/01/01 4
4 2 16 2020/01/01 4
5 2 17 2020/01/01 6
6 4 101 2021/01/01 22
7 3 101 2022/01/01 23
8 6 1 2022/01/01
6 1 2022/01/01 27
PARENT ID 가 NULL 인 ID 1, ID 2가 1 세대이며 ID 1에서 분화된 ID 3, ID 2에서 분화된 ID 4, ID 5 가 2 세대입니다. ID 4 에서 분화된 ID 6, ID 3에서 분화된 ID 7 이 3 세대이며 ID 6에서 분화된 ID 8은 4 세대입니다.
따라서 결과를 ID 에 대해 오름차순 정렬하면 다음과 같아야 합니다.
ID
6
7
'MySQL' 카테고리의 다른 글
| [MySQL] SQL 문법 (0) | 2025.09.02 |
|---|---|
| [MYSQL] 프로그래머스 - 멸종위기의 대장균 찾기 (0) | 2025.09.02 |
| [MySQL] 손코딩 연습 - 2 (0) | 2025.09.02 |
| [MySQL] 손코딩 연습 (윈도우함수, CTE, JOIN 등) - 1 (0) | 2025.09.02 |
| [MySQL] MySQL:: Too many connection... (1) | 2024.12.06 |
- Total
- Today
- Yesterday
- 판교테크원타워맛집
- csv다운로드
- cachedbodyhttpservletrequest
- 유에이치스위트
- 컬럼타입변경
- 오리지널팬케이스하우스
- 스프링부트
- 500에러관리
- 권한별메뉴만들기
- csv업로드
- 디너요리추천
- springboot
- 400에러관리
- 데이터베이스
- httpcode
- 신사동이자카야
- 재귀구문
- 논클러스터 인덱스
- 시청역놀곳
- 오리지널팬케이스하우스 판교점
- 데이터업로드
- 사용자별메뉴
- MySQL
- xcrunerror
- 디비개발프로세스
- 유에이치스위트서울스퀘어
- 시청역숙소
- MAC
- menu만들기
- 바디캐싱
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |