> 직업별로 그룹화를 하고 순위를 매기는 방법은 어떻게 할까요?
위와 같은 질문에 답은 row_number() over(partition by 그룹화 기준 칼럼)입니다.
쿼리1)
SELECT Name, occupation, ROW_NUMBER() OVER(PARTITION BY occupation) AS rank FROM oocupations;
결괏값: 각 직업을 기준으로 그룹화가 되어 순위를 매겨줍니다.
> 조금 더 나아가 직업별로 그룹화를 하고, 이름 순으로 순위를 매기는 방법은 어떻게 할까요?
답은 ROW_NUMBER() OVER(PARTITION BY 그룹화 기준 칼럼 ORDER BY 정렬 기준 칼럼)입니다.
쿼리2)
SELECT Name, occupation, ROW_NUMBER() OVER(PARTITION BY occupation ORDER BY Name) AS 'rank'
FROM occupations;
결괏값: 직업을 기준으로 그룹화되고, 이름 순으로 순위를 매깁니다.