SQL

[MySQL] 프로그래머스 - 오랜 기간 보호한 동물(2)

bbomi 2023. 9. 26. 21:11

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 
 

문제

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

 

정답

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_ID IN
(SELECT ANIMAL_ID
FROM (
  SELECT A.ANIMAL_ID, DATEDIFF(B.DATETIME, A.DATETIME) AS DIFF
  FROM ANIMAL_INS A
  INNER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
  ORDER BY DIFF DESC
  LIMIT 2
) AS Sub);