-
[DB] Rank and Partition데이터베이스 2020. 12. 6. 15:37728x90
Ranking
2, 3, 4 등을 불러오는 Mysql Query
SELECT * FROM Professor ORDER BY salary DSEC LIMIT 3 OFFSET 1;
ORDER BY 구문을 통해 정렬을 한 뒤 OFFSET 만큼 row 를 건너뛴 다음 LIMIT 개수만큼 출력해줌
rank() 함수
MYSQL 8버전부터 지원 :
SELECT ID, RANK() over (ORDER BY gpa DESC) as sRank FROM StudentGrade ORDER BY sRank;
MYSQL 8 이전 버전:
SELECT ID (SELECT COUNT(*) FROM StudentGrade B WHERE A.gpa < B.gpa) AS sRank FROM SutdentGrade A ORDER BY sRank;
Rank : 1등이 2명일 때 다음 등수가 3임
Dense_rank : 1등이 2명일 때 다음 등수가 2임
Partition
학과별 GPA 순위를 매기는 방법 : PARTITION BY 키워드를 사용
SELECT ID, deptName, rank() over (PARTITION BY deptName ORDER BY gpa DESC) as DeptRank FROM StudentGrade ORDER BY deptName, deptRank;
-
percent_rank() : 상위 몇 %
-
cume_dist() : 누적 등수
-
ntile(n) : 전체를 N 등분하여 몇번 그룹에 속하는지
'데이터베이스' 카테고리의 다른 글
[DB] Mysql 함수 정의 및 사용 (3) 2020.12.06 [DB] Mysql Date 타입, 사용자정의 타입, 도메인, Large Object (0) 2020.12.06 [DB] DateType(날짜) 종류 (0) 2020.12.06 관계형 데이터베이스와 Relation Algebra (0) 2020.10.21 Database 사전지식 (0) 2020.10.15 -