반응형
https://programmers.co.kr/learn/courses/30/lessons/59411
[ 문제풀이 ]
두 테이블을 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 |
댓글