반응형
--13)ROW_NUMBER, RANK, DENSE_RANK함수
--특정 집합 내에서 결과 건수의 변화 없이 해당 집합안에서 특정 컬럼의 순위를 구하는 함수
--ROW_NUMBER 함수 - 무조건 1,2,3,4,5...
--같은 순위가 있어도 무조건 순차적으로 순위를 매긴다.(1,2,3,4,5..순으로)
select A.PRODUCT_NAME, B.GROUP_NAME, A.PRICE,
ROW_NUMBER() over (partition by B.GROUP_NAME order by A.PRICE DESC)
from PRODUCT a
inner join PRODUCT_GROUP b
on (A.GROUP_ID = B.group_ID);
--RANK 함수 - 같은 순위면 같은 순위면서 다음 순위 건너뜀 1,1,3,4...
select A.PRODUCT_NAME, B.GROUP_NAME, A.PRICE,
RANK() over (partition by B.GROUP_NAME order by A.PRICE)
from PRODUCT a
inner join PRODUCT_GROUP b
on (A.GROUP_ID = B.group_ID);
--DENSE_RANK 함수 - 같은 순위면 같은 순위면서 다음 순위 건너뛰지 않음 1,1,2,3...
select A.PRODUCT_NAME, B.GROUP_NAME, A.PRICE,
DENSE_RANK() over (partition by B.GROUP_NAME order by A.PRICE)
from PRODUCT a
inner join PRODUCT_GROUP b
on (A.GROUP_ID = B.group_ID);
반응형
'DataBase' 카테고리의 다른 글
[SQL] LAG, LEAD 함수 (0) | 2021.09.15 |
---|---|
[postgreSQL] FIRST_VALUE, LAST_VALUE 함수 (0) | 2021.09.15 |
[postgreSQL] [분석함수] AVG() (0) | 2021.09.15 |
[postgreSQL] [그룹함수] GROUPING SETS, ROLLUP, CUBE (0) | 2021.09.15 |
[postgreSQL] ANY 연산자, ALL 연산자,EXISTS 연산자 (0) | 2021.09.15 |
댓글