https://school.programmers.co.kr/learn/courses/30/lessons/59411
코딩테스트 연습 > String, Date > 오랜 기간 보호한 동물(2)
문제 분석
난이도: LEVEL3
문제 요구사항
입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 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 -- DATEDIFF(종료일, 시작일)
LIMIT 2
보호 기간이 가장 길었던 동물을 구할려면 보호 시작 기간과 보호 종료 기간(입양 날짜)의 정보가 필요하다.
보호 시작 기간은 AINAM_INS 입양 날짜는 ANIMAL_OUTS 테이블에 있다. 두 테이블을 ANIMAL_ID를 기준으로 조인한다.
날짜 계산을 해야 하는데 날짜 계산 함수를 활용한다. DATEDIFF(종료일, 시작일)
해당 보호 기간을 기준으로 내림차순 정렬을 하고 LIMIT 2를 걸어주면 가장 보호기간이 길었던 동물 정보가 2개 나온다.
'Algorithm > Programmers SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 있었는데요 없었습니다 (0) | 2024.09.16 |
---|---|
[MySQL] 프로그래머스 오랜 기간 보호한 동물(1) (0) | 2024.09.16 |
[MySQL] 프로그래머스 헤비 유저가 소유한 장소 (0) | 2024.09.16 |
[MySQL] 프로그래머스 조건별로 분류하여 주문상태 출력하기 (0) | 2024.09.16 |
[MySQL] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2024.09.16 |