데이터분석공부

데이터분석공부 기초SQL 순위함수 ROW NUMBER, RANK OVER, DENSE RANK

EFS 2022. 5. 28. 21:07
반응형

계속 이어나가는 데이터분석공부입니다. SQL의 기초 기본구문을 공부중입니다. 회사에서 데이터 다루시면 순위가 중요할 수 밖에 없는데요. 회사에서 중요한것은 실적 그 자체이기 때문입니다.

 

저는 계속 '패스트캠퍼스'의 'SQL 100제 + 자격증 완성온라인반' 를 듣고있습니다. 이어서 순위함수인 ' ROW NUMBER, RANK OVER, DENSE RANK ' 편을 요약해봅니다.

 

 

 


그런데 이 함수를 이해하기 위해서는 우선 'PARTITION BY' 구문을 먼저이해하는게 필요할 것 같습니다.
항상 이 구문과 거의 세트처럼 다니더라구요.

- PARTITION BY -
우리가 흔히 아는 '파티션' 즉 구획을 나누는 그 의미를 연상하면 됩니다. 즉 데이터를 분류하는 기준!


반응형


[ ROW_NUMBER ( ) OVER ]
 : 동일한 값이 있어도 앞 분류기준 ( PARTITION BY ) 에 의하여 값의 순위를 매긴다.
아래는 'B group_name'에 의하여 순위를 price기준으로 정렬한다. 순번을 보여준다.

아래 DENSE_RANK와 비교하면 ROW NUMBER () OVER에는 겹치는 순위가 업다는 뜻.

 



[ RANK ] : 동일값이 있으면 건너뛰는 것.

아래 예를 공동1등 매기고... 그다음 3등으로 가는 것. 




[ DENSE RANK ] : 공동순위가 있더라도 그다음값을 2등으로 치환해준다.


반응형