ROWNUM :
출력후 순번을 매겨주는 함수
order by 절과 함께 사용하면 엉망이 되는데
ROWNUM 으로 먼저 순번을 매기고 그후에 order by 절을 시행하기 때문이다.
SELECT
ROWNUM,--순번매기기
A.PRODUCT_NAME,
A.STANDARD_COST
FROM
(
SELECT
*
FROM
PRODUCTS
ORDER BY STANDARD_COST --서브쿼리내에서 정렬
)A
때문에 위와 같이 서브쿼리로 먼저 순번을 정리한 후에 ROWNUM 을 통해서 순번을 매긴다.
ROW_NUMBER()
:그룹별 순번을 반환하는 윈도우 함수
SELECT
ROW_NUMBER() OVER (ORDER BY A.STANDARD_COST) AS NUM, --그룹별 순번
A.PRODUCT_NAME,
A.STANDARD_COST
FROM
PRODUCTS A
위와 같이 partition by 를 사용하지 않고 order by 만 사용한다면 서브 쿼리절을 사용하지 않고 order by 된 row 의 순번을 매길 수 있다.
'공부,일 > SQL' 카테고리의 다른 글
가져온 database 복원하기 (0) | 2021.05.26 |
---|---|
MS-SQL SERVER 설치 (0) | 2021.05.26 |
SQLD_34 오답 (0) | 2021.05.24 |
NTILE (0) | 2021.05.24 |
SQLD 이론 (0) | 2021.05.16 |
댓글