프로그래머스 SQL 고득점 킷 오랜 기간 보호한 동물(2)

hysss·2023년 2월 21일
0

String, Date - 오랜 기간 보호한 동물(2)

문제 분석

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

코드

SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I JOIN ANIMAL_OUTS O ON I.ANIMAL_ID=O.ANIMAL_ID
ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC
LIMIT 2

문제 풀이

ANIMAL_OUTS 테이블에 기록이 있다는 것은 입양을 갔다는 것이기 때문에 단순 JOIN으로 첫 번째 조건은 해결됐다.

보호 기간이 가장 길었던 동물을 구하기 위해서 DATEDIFF() 함수를 썼는데, 이 함수의 결과값은 "첫 번째 인자 - 두 번째 인자"이기 때문에 순서에 유의해야 한다. 이것 때문에 DESC으로 정렬했다가 보호 기간이 가장 짧은 동물부터 출력해버려서 틀렸다.

그리고 두 마리만 출력하는 것이기 때문에 LIMIT 2를 추가했다.

profile
매일 매일 규칙적으로

0개의 댓글