
학원에서 배웠던 오라클 DB 중 마지막으로 배웠던 내용이다.
분석함수 중의 하나로 테이블에 있는 데이터를 특정 용도로 분석하여 결과를 반환하는 함수다.
ROW_NUMBER( ) OVER( )는 ROWNUM이랑 비슷하다.
*항상 같이 해왔던 testboard를 예시 테이블로 들었다.
--기본 형식
ROW_NUMBER() OVER([PARTITION BY 컬럼] ORDER BY COLUMN)
--[그룹으로 묶어서 그 그룹 내에] COLOMN 기준으로 정렬한 후 번호를 매기는 함수
--그룹을 설정해서 그룹내 멤버(같은 그룹의 행의 갯수)가 2 이상인 경우 COLUMN 기준으로 번호를 매긴다.
*대괄호로 묶여있는 부분은 선택사항이다. 그룹으로 묶는다는 것은 컬럼의 같은 값들끼리로 묶는다는 의미다.
-- 사용 예제1
SELECT ROW_NUMBER() OVER(ORDER BY A.BIDX) AS RNUM, A.* FROM TESTBOARD A;

[PARTITION BY 컬럼]을 적용해서 나타내 보자.
글을 쓴 사람의 회원번호(MIDX)끼리 그룹을 맺어보면 다음과 같은 결과가 나온다.
SELECT ROW_NUMBER() OVER(PARTITION BY A.MIDX ORDER BY A.BIDX) AS RNUM, A.* FROM TESTBOARD A;

'Oracle DB' 카테고리의 다른 글
| LEFT JOIN, RIGHT JOIN, ROWNUM (0) | 2022.01.13 |
|---|---|
| FOREIGN KEY, INNER JOIN, OUTER JOIN (0) | 2022.01.11 |
| UNION (4) | 2022.01.08 |
| DECODE, NVL, CASE (2) | 2022.01.07 |
| 서브쿼리, 시퀀스 (4) | 2022.01.06 |