반응형
문제 설명

예시

풀이 방법
아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 문제입니다. 결과는 보호 시작일 순으로 조회해야 합니다.
우선 주어진 두 테이블을 활용하여 동물의 ID가 같은 것끼리 매치하여 JOIN을 합니다. WHERE조건으로 아직 입양을 못 간 동물을 추출하도록 하여 입양 테이블(ANIMAL_OUTS)의 동물 아이디가 NULL인 조건을 명시합니다. 가장 오래 보호소에 있었던 동물 3마리를 추출하기 위해 보호소에 들어온 동물 정보를 담은 테이블 ANIMAL_INS의 보호 시작일(DATETIME) 순으로 ORDER BY하여 정렬합니다. 다음으로 행단위로 상위 n개 행을 추출하는 LIMIT n;을 사용하여 보호 시작일이 가장 빠른 상위 3개 행의 데이터를 추출합니다. 이 때, SELECT절에서 ANIMAL_INS테이블에만 있는 데이터이므로 ANIMAL_INS의 이름(NAME)과 보호시작일(DATETIME)을 조회합니다.
문제 풀이
SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS INS LEFT JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY INS.DATETIME
LIMIT 3;
실행 결과

반응형
'코딩테스트 > SQL' 카테고리의 다른 글
| [프로그래머스] String, Date 〉Lv2. 루시와 엘라 찾기 (0) | 2021.10.25 |
|---|---|
| [프로그래머스] JOIN 〉Lv4. 보호소에서 중성화한 동물 (0) | 2021.10.24 |
| [프로그래머스] JOIN 〉Lv3. 있었는데요 없었습니다 (0) | 2021.10.22 |
| [프로그래머스] JOIN 〉Lv3. 없어진 기록 찾기 (0) | 2021.10.21 |
| [프로그래머스] IS NULL 〉Lv2. NULL 처리하기 (0) | 2021.10.20 |
댓글