rank() 함수는 결과 집합의 파티션 내 모든 행에 대한 순위를 지정하는 데 사용할 수 있습니다.
먼저 테이블을 생성해 보겠습니다 -
mysql> create table RankDemo mysql> ( mysql> id int mysql> ); Query OK, 0 rows affected (0.53 sec)
테이블에 레코드 삽입하기.
mysql> insert into RankDemo values(1); Query OK, 1 row affected (0.19 sec) mysql> insert into RankDemo values(3); Query OK, 1 row affected (0.12 sec) mysql> insert into RankDemo values(3); Query OK, 1 row affected (0.11 sec) mysql> insert into RankDemo values(4); Query OK, 1 row affected (0.12 sec) mysql> insert into RankDemo values(5); Query OK, 1 row affected (0.17 sec)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from RankDemo;
다음은 출력입니다.
+------+ | id | +------+ | 1 | | 3 | | 3 | | 4 | | 5 | +------+ 5 rows in set (0.00 sec)
이제 위에서 논의한 rank() 함수를 적용해 보겠습니다.
mysql> SELECT mysql> id,RANK() OVER (ORDER BY id ) Ranking mysql> from RankDemo;
다음은 순위를 표시하는 출력입니다.
+------+---------+ | id | Ranking | +------+---------+ | 1 | 1 | | 3 | 2 | | 3 | 2 | | 4 | 4 | | 5 | 5 | +------+---------+ 5 rows in set (0.04 sec)