[DB.SQL] 윈도우 함수

HwangBBang·2023년 2월 7일
0

SQL

목록 보기
8/9

윈도우 함수 종류

#RANK

각 Row 에 순위를 부여하는 함수
order by 절의 기준으로 정렬
동일한 값일 경우 같은 순위로 출력

select empno, ename, deptno, sal,
       rank() over (order by sal desc) 순위
from emp;

select empno, ename, deptno, sal,
	   rank() over (partition by deptno order by sal desc) 순위
from emp;

#DENSE_RANK()

RANK()와 모든 기능이 같음

  • DENSE_RANK() : 동일한 값일 경우 갯수와 상관없이 다음 순위 +1
  • RANK() : 동일한 값일 경우 갯수를 고려해서 +n
select empno, ename, deptno, sal,
        dense_rank() over (order by sal desc) 순위1,
        rank() over (order by sal desc) 순위2from emp;

#ROW_NUMBER()

RANK()와 모든 기능이 같음

select empno, ename, deptno, sal,
        dense_rank() over (order by sal desc) 순위1,
        rank() over (order by sal desc) 순위2,
        row_number() over (order by sal desc) 순위3from emp;


#NTILE()

NTILE(arg)order by 절 기준을 따라서arg 개 만큼 그룹으로 나누는 함수

select ename,  sal, 
       ntile(3) over (order by sal desc)        
from emp;

profile
https://hwangbbang.tistory.com/

0개의 댓글