MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

SELECTステートメントで行インデックス(ランク)を生成するMySQLクエリ?


行インデックスを生成するには、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)

以下は、MySQLSELECTステートメントで行インデックスを生成するためのクエリです。ここでは、重複する名前のランクを設定しました-

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)

  1. MySQLクエリでSELECTNULLステートメントを使用できますか?

    はい、MySQLクエリでSELECTNULLステートメントを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable (    Name varchar(100) ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris'); Query OK, 1 row affected (0.47 sec) mysql> ins

  2. 最大および最小の給与行を選択するためのMySQLクエリ?

    このためには、MIN()およびMAX()とともにサブクエリを使用します。最大値と最小値の両方を表示するには、UNIONALLを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> EmployeeName varchar(20),    -> EmployeeSalary int    -> ); Query OK, 0 rows affected (0.70 sec) 挿入コマンド-を使用して、テーブルに