[SQL] 프로그래머스 - 오랜 기간 보호한 동물(2)
https://programmers.co.kr/learn/courses/30/lessons/59411
문제설명
입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
풀이방법
ANIMAL_INS와 ANIMAL_OUTS 테이블에서 ANIMAL_ID가 같은 동물의
DATEDIFF(A.DATETIME, B.DATETIME)
을 구해 내림차순으로 정렬한 후 2개만 출력한다.
DATEDIFF
여기서 DATEDIFF를 처음 사용해봤는데 원래는
SELECT DATEDIFF(날짜형식, 시작날짜, 종료날짜) 이러한 형식으로 사용한다.
하지만 위와같은 방식으로 하면 해당문제에서는 에러가 발생했다고 나와서
SELECT DATEDIFF(시작날짜, 종료날짜) 이렇게 사용하였다.
(이유를 알게된다면 수정해서 올리겠음)
-- 코드를 입력하세요
SELECT DISTINCT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY DATEDIFF(A.DATETIME, B.DATETIME) ASC // 첫번째 인자에서 두번째 인자값을 빼서 음수가 되기때문에 ASC로 했음
//ORDER BY DATEDIFF(B.DATETIME, A.DATETIME) DESC
LIMIT 2;
Author And Source
이 문제에 관하여([SQL] 프로그래머스 - 오랜 기간 보호한 동물(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dolarge/SQL-프로그래머스-오랜-기간-보호한-동물2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)