코딩테스트 연습 - 오랜 기간 보호한 동물(2) | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[1] DATEDIFF (n, m)를 이용한 두 날짜 값간의 차이 구하기 n이 m보다 커야됨. (최근)
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY DATEDIFF(B.DATETIME, A.DATETIME) DESC LIMIT 2;
[2] TIMESTAMPDIFF(X, n, m) - X에 옵션을 넣고 아래 경우엔 DAY, n 날짜 부터 m 날짜 까지의 갭을 계산함. DATEDIFF()와 다르게 시작하는 날, 끝나는 날 순서대로 넣어야함.
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY TIMESTAMPDIFF(DAY,A.DATETIME,B.DATETIME) DESC LIMIT 2;
[3] 요건 인라인 뷰를 이용하여 푸는 방법
SELECT ANIMAL_ID, NAME
FROM
(SELECT B.ANIMAL_ID, B.NAME,
TIMESTAMPDIFF(DAY, A.DATETIME, B.DATETIME) DURATION
FROM ANIMAL_OUTS B LEFT JOIN ANIMAL_INS A ON A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY DURATION DESC) Q
LIMIT 2;
'SQL 이것저것' 카테고리의 다른 글
[MySQL] 데이터 내 중복 값들을 가진 인스턴스만 추출하기 (2) | 2024.10.10 |
---|---|
[MySQL] 서브쿼리를 이용한 그룹 내 max 값만 뽑아오기 (0) | 2024.10.10 |
[MySQL] JOIN의 cheatsheet (0) | 2024.10.08 |
[MySQL] LIKE 를 여러 개 걸 때? 정규 표현식 REGEXP() 그리고 집합연산 (1) | 2024.10.08 |
[MySQL] dayofweek() 함수로 요일 붙이기 (0) | 2024.10.07 |