문제
https://school.programmers.co.kr/learn/courses/30/lessons/59411
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
DATE 연산으로 문제를 해결할 수 있었다.
일단 서브쿼리와 메인쿼리의 WHERE을 통해 ANIMAL_INS <-> ANIMAL_OUTS 테이블 사이의 입양 유효성 검증을 진행하여 입양 보낸 동물들의 정보들만 받아올 수 있도록 하고 보호기간이 긴 순으로 레코드를 조회해야하므로 DATE 연산을 통해 정렬해주면 된다.
이때 DATE는 년/월/일이 높은 것이 더 큰 값을 가지는데 예를들어 (2022/09/01 - 2021/09/01) > 0을 만족하기에 이를 활용하여 입양일 - 보호시작일을 연산해주어 이 결과를 바탕으로 정렬해주면 문제를 해결할 수 있다.
쿼리
SELECT
A.ANIMAL_ID,
A.NAME
FROM
(SELECT
ANIMAL_ID,
NAME,
DATETIME
FROM
ANIMAL_INS
) AS A,
(SELECT
ANIMAL_ID,
NAME,
DATETIME
FROM
ANIMAL_OUTS
) AS B
WHERE
A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY
(B.DATETIME - A.DATETIME) DESC
LIMIT 2 OFFSET 0
'프로그래머스-SQL' 카테고리의 다른 글
[프로그래머스-SQL] 프로그래머스 SQL Level1 과일로 만든 아이스크림 고르기 MySQL (0) | 2022.11.03 |
---|---|
[프로그래머스-SQL] 프로그래머스 SQL Level2 상품 별 오프라인 매출 구하기 MySQL (0) | 2022.11.02 |
[프로그래머스-SQL] 프로그래머스 SQL Level3 성조건별로 분류하여 주문상태 출력하기 MySQL (0) | 2022.10.31 |
[프로그래머스-SQL] 프로그래머스 SQL Level2 성분으로 구분한 아이스크림 총 주문량 MySQL (0) | 2022.10.28 |
[프로그래머스-SQL] 프로그래머스 SQL Level4 식품분류별 가장 비싼 식품의 정보 조회하기 MySQL (0) | 2022.10.13 |