반응형
※ 문제
※ 코드
-- 코드를 입력하세요
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을 사용하여 값을 뽑아줍니다.
반응형
'DBMS' 카테고리의 다른 글
[프로그래머스 SQL] Lv. 1 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2025.02.28 |
---|---|
[프로그래머스 SQL] Lv. 1 잡은 물고기 중 가장 큰 물고기의 길이 구하기 (0) | 2025.02.28 |
[프로그래머스 SQL] Lv. 1 Python 개발자 찾기 (0) | 2025.02.27 |
[프로그래머스 SQL] Lv. 1 평균 일일 대여 요금 구하기 (0) | 2025.02.27 |
[프로그래머스 SQL] Lv. 1 잔챙이 잡은 수 구하기 (0) | 2025.02.27 |