본문 바로가기
DBMS

[프로그래머스 SQL] Lv. 1 최댓값 구하기

by floral1215 2025. 2. 27.
반응형

※ 문제

 

※ 코드

-- 코드를 입력하세요
SELECT  DATETIME
FROM    (SELECT     DATETIME
         FROM       ANIMAL_INS
         ORDER BY   DATETIME DESC)
WHERE   ROWNUM = 1;

 

※ 풀이

우선 DATETIME을 기준으로 내림차순 정렬을 해줍니다. 그래야 1번째 값이 가장 최근 값이 되겠죠? (시간은 뒤로 갈수록 더 큰값이 되므로)

 

그리고 정렬한 테이블에서 바로 ROWNUM을 쓸 순 없습니다. ORDER BY 절은 가장 마지막 후순위이기 때문에 정렬보다 ROWNUM 연산이 먼저 이루어지기 때문입니다.

 

# FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

 

그러므로 정렬을 먼저 실행하여 1차로 테이블을 만들어준 뒤 2차로 FROM 절에서 가져오고 마지막으로 ROWNUM을 사용하여 값을 뽑아줍니다.

반응형