https://school.programmers.co.kr/learn/courses/30/lessons/59411
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
풀이
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I INNER JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2;
- 입양간 동물중 보호기간이 오래된 동물을 찾는 것이므로 inner join을 수행했다
- fk가 동물id이니 id로 묶어줬다
- 입양간 동물 날짜 - 보호소들어온 날짜값을 내림차순 정렬하고
- 2마리 출력이니 limit 2를 수행해줬다
- 그런데 DATEDIFF를 써도 된다고 한다.
다른 사람 코드 참고
SELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAME
FROM ANIMAL_INS, ANIMAL_OUTS
WHERE ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID
ORDER BY DATEDIFF(ANIMAL_OUTS.DATETIME, ANIMAL_INS.DATETIME) DESC
LIMIT 2
이런식으로
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기 (MySQL) (0) | 2025.04.14 |
---|---|
[프로그래머스] 성분으로 구분한 아이스크림 총 주문량 (SQL) (0) | 2025.03.14 |
[프로그래머스]오랜 기간 보호한 동물(1) (SQL) (2) | 2025.03.13 |
[프로그래머스] SQL 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2025.03.09 |
[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기 (MySQL) (0) | 2025.03.03 |