반응형
https://programmers.co.kr/learn/courses/30/lessons/59411
코딩테스트 연습 - 오랜 기간 보호한 동물(2)
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
[ 문제풀이 ]
두 테이블을 JOIN 하여 시간 차이가 큰 튜플을 2개 뽑아주면 되는 문제이다.
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS AS I
JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2;
다른 풀이를 살펴보니 timestampdiff라는 함수를 이용하면 두 시간의 차이를 구할 수 있다.
DATEDIFF(날짜1, 날짜2) : Day를 기준으로 두 날짜간의 차이를 구함
TIMESTAMPDIFF(단위, 날짜1, 날짜2) : 단위를 기준으로 두 날짜간의 차이를 구함
ex) SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR 등
연산 순서는 두 함수 모두 날짜2 - 날짜1
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS AS I
JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY TIMESTAMPDIFF(SECOND, I.DATETIME, O.DATETIME) DESC
LIMIT 2;
반응형
'Problem Solving > 프로그래머스 SQL' 카테고리의 다른 글
[프로그래머스 SQL] 헤비 유저가 소유한 장소 (0) | 2021.08.11 |
---|---|
[프로그래머스 SQL] DATETIME에서 DATE로 형 변환 (0) | 2021.08.11 |
[프로그래머스 SQL] 중성화 여부 (0) | 2021.08.11 |
[프로그래머스 SQL] 이름에 el이 들어가는 동물 찾기 (0) | 2021.08.11 |
[프로그래머스 SQL] 루시와 엘라 찾기 (0) | 2021.08.11 |
댓글