행 인덱스를 생성하려면 ROW_NUMBER()를 사용하십시오. 먼저 테이블을 생성하겠습니다 -
mysql> create table DemoTable ( Name varchar(40) ); Query OK, 0 rows affected (0.49 sec)
삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -
mysql> insert into DemoTable values('Chris'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values('Chris'); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable values('Chris'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values('Robert'); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values('Robert'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values('Adam'); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values('Adam'); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable values('Adam'); Query OK, 1 row affected (0.08 sec) mysql> insert into DemoTable values('Adam'); Query OK, 1 row affected (0.08 sec)
select 문을 사용하여 테이블의 모든 레코드 표시 -
mysql> select *from DemoTable;
이것은 다음과 같은 출력을 생성합니다 -
+--------+ | Name | +--------+ | Chris | | Chris | | Chris | | Robert | | Robert | | Adam | | Adam | | Adam | | Adam | +--------+ 9 rows in set (0.00 sec)
다음은 MySQL SELECT 문에서 행 인덱스를 생성하는 쿼리이다. 여기에서 중복 이름에 대한 순위를 설정했습니다. −
mysql> select Name, row_number() over (partition by Name) as `Rank` from DemoTable;
이것은 다음과 같은 출력을 생성합니다 -
+--------+------+ | Name | Rank | +--------+------+ | Adam | 1 | | Adam | 2 | | Adam | 3 | | Adam | 4 | | Chris | 1 | | Chris | 2 | | Chris | 3 | | Robert | 1 | | Robert | 2 | +--------+------+ 9 rows in set (0.00 sec)