본문 바로가기
SQL

상위 N개 레코드(N개 출력 - ROWNUM, FROM 절 서브쿼리)

by hoshi03 2024. 11. 19.

https://school.programmers.co.kr/learn/courses/30/lessons/59405?language=oracle

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

들어온 날짜가 가장 오래된 동물의 이름을 고르는 문제

 

SELECT 
    NAME, DATETIME
FROM
    ANIMAL_INS
WHERE 
	ROWNUM <= 1
ORDER BY DATETIME;

 

ROWNUM 키워드로 1개를 뽑아냈지만 정렬이 제대로 되지 않았다

 

-- 정답

아래처럼 FROM 절 서브쿼리로 정렬된 컬럼을 먼저 뽑아낸 다음 갯수를 제한해주는 방식으로 제대로 가장 먼저 들어온 원숭이를 찾을 수 있었다

SELECT 
    NAME
FROM
    (SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME)
WHERE 
	ROWNUM <= 1;