개발자/프로그래머스

[SQL] 프로그래머스 상위 n개 레코드 / rownum 활용

푸루닉 2022. 12. 13. 12:49

https://school.programmers.co.kr/learn/courses/30/lessons/59405

활용한 문법 = rownum

 

오라클 조회 순번 매기는 방법 rownum

 

1. rownum 역할

rownum은 특정 개수만큼 원하는 데이터를 추출하고 싶을때 사용한다.

 

2. rownum을 활용한 문제풀이

SELECT NAME
FROM   (SELECT NAME,
               datetime
        FROM   animal_ins
        ORDER  BY datetime ASC)
WHERE  rownum < 2;
-- WHERE rownum = 1;

--잘못된 방법
SELECT NAME
FROM animal_ins
WHERE  rownum < 2;
ORDER  BY datetime ASC

 ❗ 주의사항

  • rownum을 사용할때 order by를 사용하게 된다면 정렬을 먼저 하고 2개를 추출하는 것이 아닌 2개를 추출하고 거기서 정렬하게 된다.
    • 그래서 정렬을 먼저 해주고 그 결과를 rownum 매길 수 있도록 inner 쿼리를 써야한다.
  • rownum = 1로 하나만 추출할 수 있다 단! rownum = 2 부터는 1이 먼저실행되고 2를 출력하는데 rownum의 특성상 =1을 하게되면 뒤의 값이 다 증발하기 때문에 rownum = 1만 사용가능하다.