상세 컨텐츠

본문 제목

[SQLD] RANK 함수

SQL

by Wanderer Kim 2023. 4. 28. 22:58

본문

728x90

SQL의 RANK 함수는 데이터 집합에서 순위를 매기는 기능을 수행합니다. 이 함수는 ORDER BY 구문과 함께 사용되며, 정렬된 데이터 집합에서 각 행의 순위를 지정해줍니다.

 

예를 들어, 다음과 같은 Sales 테이블이 있다고 가정해보겠습니다.

 

salesperson region sales
john east 500
jane west 1000
bob east 750
sally south 250
tim west 1250

 

이 테이블에서 salesperson과 region으로 group by 구문을 사용하고, sales로 order by 구문을 사용하여 각 salesperson의 판매액 순위를 구하려면 다음과 같이 rank 함수를 사용할 수 있습니다.

 

SELECT Salesperson, Region, Sales, RANK() OVER (ORDER BY Sales DESC) AS Sales_Rank
FROM Sales
GROUP BY Salesperson, Region
ORDER BY Sales DESC

위 sql 문장은 salesperson, region으로 그훔화하고, sales를 기준으로 내림차순으로 정렬한 뒤, rank 함수를 사용하여 판매액에 대한 순위를 계산합니다. 이렇게하면 sales_rank 열에 salesperson의 판매액 순위가 나타납니다.

 

결과는 다음과 같습니다.

salesperson region sales sales_rank
tim west 1250 1
jane west 1000 2
bob east 750 3
john east 500 4
sally south 250 5

rank 함수를 중복된 값이 있을 경우 순위를 부여합니다. 예를 들어, 만약 salesperson 열이 아닌 sales 열만으로 판매액 순위를 계산하려면 다음과 같이 rank함수를 사용할 수 있습니다.

 

SELECT Salesperson, Region, Sales, RANK() OVER (ORDER BY Sales DESC) AS Sales_Rank
FROM Sales
ORDER BY Sales DESC

위 sql 문장은 sales를 기준으로 내림차순으로 정렬한 뒤, rank 함수를 사용하여 판매액에 대한 순위를 계싼합니다. 이렇게 하면 sales_rank 열에 전체 sales 테이블에서의 판매액 순위가 나타납니다.

반응형

'SQL' 카테고리의 다른 글

[SQLD] to_char 함수  (0) 2023.04.30
[SQLD] dense rank  (0) 2023.04.29
[SQLD] 슈퍼/서브 타입 데이터 모델의 변환 기술  (0) 2023.03.08
[SQLD] 엔터티  (0) 2023.03.07
[SQLD] 문자유형비교방법  (0) 2023.02.25

관련글 더보기

댓글 영역