코딩테스트

[SQL] 오랜 기간 보호한 동물(2)

haeseong5 2020. 8. 17. 14:53

https://programmers.co.kr/learn/courses/30/lessons/59411

 

코딩테스트 연습 - 오랜 기간 보호한 동물(2)

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

문제

입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.

 

정답

SELECT outs.ANIMAL_ID, outs.NAME FROM ANIMAL_OUTS as outs
LEFT JOIN ANIMAL_INS as ins ON outs.ANIMAL_ID = ins.ANIMAL_ID
WHERE outs.ANIMAL_ID IS NOT NULL
ORDER BY DATEDIFF(outs.DATETIME, ins.DATETIME) DESC
LIMIT 2;
SELECT INS.ANIMAL_ID, INS.NAME 
FROM ANIMAL_INS INS, ANIMAL_OUTS OUTS
WHERE INS.ANIMAL_ID = OUTS.ANIMAL_ID
ORDER BY INS.DATETIME - OUTS.DATETIME
LIMIT 2;