𝙎𝙌𝙇

rank와 dense_rank 차이

콜라맛갈비 2023. 1. 10. 14:48
728x90

1. rank() over

select rank() over (order by fam_nm asc) as rn, fam_nm
from fam_c;

- family name 오름차순으로 랭킹을 부여했다.

- rn이라는 하나의 컬럼을 생성할 수 있다.

- 이름이 같을 경우, 같은 순위를 가진다 (dense_rank와 동일)

- 같은 순위를 가진 후 다음 순위는 건너 뛴다 (ex. RN에서 3이 없음) (dense_rank와 다름)

 

 

2. dense_rank() over

select dense_rank() over (order by fam_nm asc) as rn, fam_nm
from fam_c;

- family name 오름차순으로 랭킹을 부여했다.

- rn이라는 하나의 컬럼을 생성할 수 있다.

- 이름이 같을 경우, 같은 순위를 가진다 (rank와 동일)

- 같은 순위를 가진 후 다음 순위는 이어간다 (ex. RN에서 3이 있음) (rank와 다름)

 

 

 

3. rank 함수 + 조건 포함

select * from 
            (select rank() over (order by fam_nm asc) as rn, fam_nm
             from fam_c
                )
where rn between 2 and 5;

- from 안에 포함

- rn이 2와 5 사이인 조건 추출

728x90

'𝙎𝙌𝙇' 카테고리의 다른 글

Self join  (0) 2023.01.11
inner join과 left outer join 비교  (0) 2023.01.10
[MySQL] 프로그래머스 SQL 고득점 Kit  (0) 2023.01.06
테이블의 데이트형 확인  (0) 2023.01.05
현재 스키마의 모든 테이블 목록 검색  (0) 2023.01.05