기초 튼튼/시행착오노트
[시행착오노트] MySQL rank 함수 구현
JoeSung
2021. 6. 18. 13:07
활용?
- 그룹별 rank를 row별로 사용할 때 활용
- 랭크 순위 기준을 order by를 통해 적용, 그룹 기준을 partition by를 통해 적용
- 다수의 컬럼에 적용 가능
- MySQL에서는 기본 제공되지 않은 함수로 커스터마이징하여 활용해야함
ORACLE, Redshift 등 다른 RDB 내의 함수
select rank () over (partition by GROUP_COL order by ORDER_COL) as rank_colname
My SQL 예시
select *
from
(
select @ROW_NUM := IF(@PREV_VALUE = A.GROUP_COLNAME, @ROW_NUM + 1, 1) AS ROW_NUMBER,
@PREV_VALUE := A.GROUP_COLNAME,
A.*
from
(
select *
from temp_table
) A,
(SELECT @ROW_NUM := 1) X,
(SELECT @PREV_VALUE := '') Y
) t1
레퍼런스:
[MySQL] Oracle(오라클)의 ROWNUM, ROW_NUMBER (PARTITION BY) 구현하기
1. ROWNUM 구현하기 SELECT @RNUM := @RNUM + 1 AS RNUM , A.* FROM 테이블 A , (SELECT @RNUM := 0) B 2. ROW_NUMBER(PARTITION BY ...) 구현하기 참고 : htt..
tyboss.tistory.com
MYSQL에서 그룹별 RANKING 구하기
RANKING을 구할 때 공부를 위해서는 특정값을 기준으로 구하면 되지만 실제 업무를 하다보면 특정값을 기준으로 하되 그룹별로 RANKING을 구해야 하는 경우가 태반이다. ORACLE에서는 간단하게 RANKING
www.coolio.so
반응형