| 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59044
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
| 풀이
SELECT *
FROM (
SELECT I.NAME AS NAME, I.DATETIME AS DATETIME
FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE O.ANIMAL_ID IS NULL
ORDER BY DATETIME)
WHERE ROWNUM < 4;
| 정리
보호 시작일 순으로 정렬하고 상위 3개의 데이터만 뽑아야 하는데,
WHERE 절이 ORDER BY 절 보다 먼저 적용되기 때문에
서브쿼리를 사용해서 데이터를 정렬하고
ROWNUM으로 3개의 데이터 (4개 미만)만 조회할 수 있도록 했다.