입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
문제링크
조건정리
1. 보호 기간이 가장 길었던 동물 두 마리
2. 보호 기간이 긴 순
3. 아이디와 이름 조회
풀이
1. 입양을 간 동물의 아이디와 이름
= 두 테이블에 다 정보가 있어야 함 INNER JOIN
SELECT i.ANIMAL_ID,
i.NAME
FROM ANIMAL_INS i
INNER JOIN ANIMAL_OUTS o
ON i.ANIMAL_ID = o.ANIMAL_ID
SELECT ANIMAL_ID,
NAME
FROM
(
SELECT i.ANIMAL_ID,
i.NAME,
RANK() OVER(ORDER BY DATEDIFF(o.DATETIME, i.DATETIME) DESC) AS RANKING
FROM ANIMAL_INS i
INNER JOIN ANIMAL_OUTS o
ON i.ANIMAL_ID = o.ANIMAL_ID
)sub
LIMIT 2 -- RANK 기반 / 2마리 제한