본문 바로가기
IT/PostgreSQL

[PostgreSQL] - 포스트그레 ROWNUM 사용법 [ROW_NUMBER() OVER(PARTITION BY ~ ORDER BY ~ ) ]

by 차이나는 개발자 2022. 8. 3.
728x90
반응형

#포스트그레 ROWNUM 사용법 [ROW_NUMBER() OVER(PARTITION BY ~ ORDER BY ~ ) ]

 

 

#Oracle에서 사용하는 ROWNUM을 PostgreSQL에서 ROW_NUMBER() OVER() 함수로 대체해서 사용할 수 있습니다.

 

 

1. ROWNUM() OVER() 함수 쿼리

-DEPT 테이블의 ROW개수만큼 각 ROW에 순번을 매겨줍니다.

SELECT ROW_NUMBER() OVER() AS ROWNUM, *
FROM DEPT;

 

-결과

1~14까지 ROWNUM이 지정된 것을 확인할 수 있습니다.

 

 

2. ROWNUM() OVER (ORDER BY ~ 컬럼) 

-ORDER BY절을 추가해서 정렬기준을 지정할 수 있습니다.

SELECT ROW_NUMBER() OVER(ORDER BY DEPT_CD DESC) AS ROWNUM, *
FROM DEPT;

 

-결과

DEPT_CD 컬럼의 내림차순으로 ROWNUM이 지정된 것을 확인할 수 있습니다.

 

 

3. ROWNUM() OVER (PARTITION BY ~ ORDER BY ~)

-PARTITION BY절을 추가해서 그룹화해서 순번을 매길수 있습니다.

SELECT ROW_NUMBER() OVER(PARTITION BY PARENT_CD ORDER BY DEPT_CD) AS ROWNUM, *
FROM DEPT;

 

-결과

PARTITION BY 절에 PARENT_CD 컬럼을 지정했으므로 PARENT_CD의 데이터가 같은 ROW들로 그룹화를 한 후 그룹화내에서 순번을 지정한 것을 확인할 수 있습니다.

 

 

 

728x90
반응형

댓글