[MySQL][Lv. 1] 최댓값 구하기 ✨

드코미·2025년 5월 5일
post-thumbnail

1. 문제 접근

1-1. MAX(DATETIME)

MAX()MIN()함수는 숫자뿐 아니라 날짜(datetime)에도 사용할 수 있다.
실제로 날짜는 내부적으로 숫자(타임스탬프)로 저장되기 때문에 비교가 가능하다.

✔️ 어떻게 비교할까?

DATETIMEYYYY-MM-DD HH:MM:SS 형식인데,
이 형식은 문자열로 봐도, 앞에서부터 순차적으로 비교하면 크고 작음을 판단할 수 있게 설계되어 있다.

  • 2013-11-18 > 2013-10-23 → 연도, 월, 일이 앞에서부터 비교됨

그래서 MAX, MIN이 자연스럽게 동작한다.

함수의미설명
MAX(DATETIME)가장 늦은 시각가장 최근 날짜와 시간
MIN(DATETIME)가장 이른 시각가장 오래된 날짜와 시간

1. 풀이

내가 푼 풀이 (집계 함수 사용X)

SELECT DATETIME AS 시간
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1;

이것도 정답이다.
그런데, 해당 문제의 유형이 SUM, MAX, MIN으로 되어있어서 "오잉.. 나는 SUM, MAX, MIN 안쓰고 풀었는데..."했다.

내 방식은 정렬이 필요한건데,
MAX()함수를 사용하면, 정렬 없이도 가장 큰 DATEMATE를 직접 추출하므로, 일반적으로 성능이 좋다고 한다.

MAX()를 사용한 풀이

SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS;
profile
할 수 있다!!!

0개의 댓글