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

MySQLでn番目に高い値を選択します


MySQLでn番目に高い値を選択するには、次の構文を使用します-

select distinct(yourColumnName) from yourTableName order by yourColumnName DESC limit (NthValue-1),1;

まずテーブルを作成しましょう-

mysql> create table DemoTable1594
   -> (
   -> Marks int
   -> );
Query OK, 0 rows affected (0.49 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1594 values(76);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1594 values(95);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1594 values(56);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1594 values(96);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1594 values(89);
Query OK, 1 row affected (0.19 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select * from DemoTable1594;

これにより、次の出力が生成されます-

+-------+
| Marks |
+-------+
|    76 |
|    95 |
|    56 |
|    96 |
|    89 |
+-------+
5 rows in set (0.00 sec)

n番目に高い値を選択するためのクエリは次のとおりです-

mysql> select distinct(Marks) from DemoTable1594 order by Marks DESC limit 2,1;

これにより、次の出力が生成されます-

+-------+
| Marks |
+-------+
|    89 |
+-------+
1 row in set (0.00 sec)

  1. MySQLで選択した値が「0」の場合は別の列から選択しますか?

    これには、MySQLでIF()を使用します。構文は次のとおりです- select IF(yourColumnName1=0,yourColumnName2,yourColumnName1) as anyAliasName from yourTableName; テーブルを作成しましょう- mysql> create table demo30 −> ( −> id int not null auto_increment primary key, −> value int, −> original_value int

  2. MySQLで最高の給与を選択しますか?

    これには、MAX()を使用できます。構文は次のとおりです- select MAX(yourColumnName) AS anyAliasName from yourTableName; テーブルを作成しましょう- mysql> create table demo44 −> ( −> employee_id int not null auto_increment primary key, −> employee_name varchar(20), −> employee_salary int −>