sns웹 페이지를 만들면서 페이지 내 포인트와 랭킹을 구현하는데 rank함수를 사용해 봤다.
groupby나 서브쿼리를 사용하지 않고 집계 함수나 분석 함수를 사용할 수 있다.
rank, dense_rank는 orderby가 필수이다.
mysql 8버전 이상에서 사용가능.
사용할 테이블

select id, rank() over (order by point desc) as 'rank' from user;
결과

rank()와 비교해 보면
공통점
차이점
select id, dense_rank() over (order by point desc) as 'rank' from user;
결과

select id, dense_rank() over (order by point desc) as 'ranking' from user
) rank_table where rank_table.id = 9;
서브쿼리를 사용해서 테이블을 만들어주고 where로 검색.
결과
