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
반응형
댓글