SELECT NAME, DATETIME
FROM (
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
)
WHERE ROWNUM <= 1;
<포인트 정리>
1. 상위N개 뽑기
ROWNUM 사용:
SELECT *
FROM your_table
WHERE ROWNUM <= N;
위의 쿼리는 테이블에서 처음부터 N개의 행을 선택합니다.
상위 N개의 행을 선택할 때 주의할 점은 행의 순서가 명시적으로 정의되어 있지 않는 한, 결과가 일관되지 않을 수 있다는 것입니다. 특정 순서로 상위 N개의 행을 선택하려면 ORDER BY 절과 함께 사용해야 합니다.
이때 주의!!!
순서 매우 중요!!
SELECT NAME, DATETIME
FROM ANIMAL_INS
WHERE ROWNUM <= 1
ORDER BY DATETIME DESC
;
이렇게 하면 WHERE에서 선택된 후에 ORDER BY를 실행시키기 때문에 DESC, ASC 설정해도 1개의 값에 적용된다.
따라서 위의 정답처럼 FROM에서 서브쿼리를 이용하여 정렬을 한 TABLE을 미리 설정을 한 후 거기에
WHERE절로 ROWNUM을 적용
'DataEngineering' 카테고리의 다른 글
SQL 프로그래머스 문제 - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.05.14 |
---|---|
SQL 프로그래머스 문제 - 동명 동물 수 찾기 (0) | 2024.05.14 |
SQL 프로그래머스 문제 - 강원도에 위치한 생산공장 목록 출력하기 (0) | 2024.05.13 |
SQL 프로그래머스 문제 - 인기있는 아이스크림 (0) | 2024.05.13 |
SQL 프로그래머스 문제 - 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2024.05.13 |