1. 실행환경 준비
먼저 students
테이블을 생성하고, 해당 테이블에 몇몇 학생들의 이름과 점수를 추가하는 쿼리를 실행하여 실행 환경을 만들어보자.
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
score INT NOT NULL
);
INSERT INTO students (name, score) VALUES ('김영희', 85);
INSERT INTO students (name, score) VALUES ('이철수', 90);
INSERT INTO students (name, score) VALUES ('박지민', 95);
INSERT INTO students (name, score) VALUES ('최수진', 90);
INSERT INTO students (name, score) VALUES ('장민호', 88);
이제 ROW_NUMBER()
, RANK()
, DENSE_RANK()
함수를 사용한 쿼리를 실행하면, 각 학생의 이름과 점수, 그리고 해당 점수에 따른 순위를 확인할 수 있다.
2. 순위 매기기
고유한 순위
를 할당한다. SELECT name, score, ROW_NUMBER() OVER (ORDER BY score DESC) as ranking
FROM students;
동일한 순위
를 할당하며, 그 다음 순위는 건너뛴다
.1, 2, 2, 4
로 표시될 수 있다. SELECT name, score, RANK() OVER (ORDER BY score DESC) as ranking
FROM students;
동일한 순위
를 할당한다.연속적
으로 부여된다.1, 2, 2, 3
으로 표시될 수 있다. SELECT name, score, DENSE_RANK() OVER (ORDER BY score DESC) as ranking
FROM students;