오라클 ROW_NUMBER() OVER를 사용하는 이유가 궁금해요 0 2 910

by 킹오 [Oracle 기초] [2020.04.16 11:17:06]


안녕하세요 신입개발자입니다.

 

긴 셀렉트 쿼리를 보면 ROW_NUMBER() OVER(order by 컬럼) RANK 이런식으로 순위를 매긴걸 자주 볼수가 있는데요

명시한 컬럼을 기준으로 1,2,3,... 순위를 나열하기 위해서 필요한 게 맞나요? 순위는 중복되지 않는다고 알고 있습니다.

만들어진 순위 RANK를 가지고 where문에서 뭔가를 많이 다루는 거 같더라구요 

 

 

 

 

 

 

by 마농 [2020.04.16 13:24:25]

단순 기능으로만 보면 번호 매기는 함수 맞습니다.
단순하게는 번호 매길 필요가 있을 때 사용하구요.
번호를 매김으로 인해 이를 활용하여 여러가지를 할 수 있습니다.
- 패이징 처리 WHERE rn BETWEEN 1 AND 10
- 최근자료만 조회하기 WHERE rn = 1
- 기타 등등 ...
rank 라는 또 다른 함수도 있으므로, 알리아스로 rank 를 쓰는 것은 바람직하지 않구요.


by 킹오 [2020.04.16 14:13:40]

댓글 보고 여러 쿼리 보니까 페이징처리에 주로 사용하는것같아요 감사합니다 ㅎㅎ rank를 안쓰는 이유도 있었네요.. 주로 rn 을 사용하는것같아요 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입