MySQL列のn番目に高い値を見つける方法は?
列のn番目に高い値を見つけるには、LIMIT句を指定したORDERBYDESCを使用する必要があります。列の2番目に高い値が必要な場合は、次の構文を使用します。
SELECT *FROM yourTableName ORDER BY DESC yourColumnName LIMIT 1,1;
列の4番目に高い値が必要な場合は、次の構文を使用します。
SELECT *FROM yourTableName ORDER BY DESC yourColumnName LIMIT 3,1;
列の最初の最大値が必要な場合は、次の構文を使用します。
SELECT *FROM yourTableName ORDER BY DESC yourColumnName LIMIT 1;
上記の構文で説明したように、LIMIT句でのみ変更する必要があります。上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。
mysql> create table NthSalaryDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(10), -> Salary int, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (1.03 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです。
mysql> insert into NthSalaryDemo(Name,Salary) values('Larry',5700); Query OK, 1 row affected (0.41 sec) mysql> insert into NthSalaryDemo(Name,Salary) values('Sam',6000); Query OK, 1 row affected (0.16 sec) mysql> insert into NthSalaryDemo(Name,Salary) values('Mike',5800); Query OK, 1 row affected (0.16 sec) mysql> insert into NthSalaryDemo(Name,Salary) values('Carol',4500); Query OK, 1 row affected (0.17 sec) mysql> insert into NthSalaryDemo(Name,Salary) values('Bob',4900); Query OK, 1 row affected (0.20 sec) mysql> insert into NthSalaryDemo(Name,Salary) values('David',5400); Query OK, 1 row affected (0.27 sec) mysql> insert into NthSalaryDemo(Name,Salary) values('Maxwell',5300); Query OK, 1 row affected (0.21 sec) mysql> insert into NthSalaryDemo(Name,Salary) values('James',4000); Query OK, 1 row affected (0.19 sec) mysql> insert into NthSalaryDemo(Name,Salary) values('Robert',4600); Query OK, 1 row affected (0.19 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。
mysql> select *from NthSalaryDemo;
出力は次のとおりです。
+----+---------+--------+ | Id | Name | Salary | +----+---------+--------+ | 1 | Larry | 5700 | | 2 | Sam | 6000 | | 3 | Mike | 5800 | | 4 | Carol | 4500 | | 5 | Bob | 4900 | | 6 | David | 5400 | | 7 | Maxwell | 5300 | | 8 | James | 4000 | | 9 | Robert | 4600 | +----+---------+--------+ 9 rows in set (0.00 sec)
ケース1: これは、列のn番目に高い値を取得するためのクエリです。
次のクエリは、「給与」列の4番目に高い値を示します。
mysql> select *from NthSalaryDemo order by Salary desc limit 3,1;
出力は次のとおりです。
+----+-------+--------+ | Id | Name | Salary | +----+-------+--------+ | 6 | David | 5400 | +----+-------+--------+ 1 row in set (0.00 sec)
ケース2: 列「Salary」の2番目に高い値を取得するためのクエリは次のとおりです。
mysql> select *from NthSalaryDemo order by Salary desc limit 1,1;
出力は次のとおりです。
+----+------+--------+ | Id | Name | Salary | +----+------+--------+ | 3 | Mike | 5800 | +----+------+--------+ 1 row in set (0.00 sec)
ケース3: 列の最初の最大値を取得するためのクエリは次のとおりです。
mysql> select *from NthSalaryDemo order by Salary desc limit 1;
出力は次のとおりです。
+----+------+--------+ | Id | Name | Salary | +----+------+--------+ | 2 | Sam | 6000 | +----+------+--------+ 1 row in set (0.00 sec)
ケース4: 「給与」列の8番目に高い値を取得する場合は、次のクエリを使用します。
mysql> select *from NthSalaryDemo order by Salary desc limit 7,1;
出力は次のとおりです。
+----+-------+--------+ | Id | Name | Salary | +----+-------+--------+ | 4 | Carol | 4500 | +----+-------+--------+ 1 row in set (0.00 sec)
-
MySQLで特定の列名を持つテーブルを見つける方法は?
列名を見つけるには、information_schema.columnsを使用します。以下は構文です- select distinct table_name from information_schema.columns where column_name like '%yourSearchValue%' and table_schema=database(); さまざまなテーブルで列名を見つけるために、上記の構文を実装しましょう。ここでは、特定の列名が「クライアント」という単語を持つテーブル名のみが必要です- mysql> select distinct table_
-
MySQLの列の最大値を見つける
MAX(columnName)を使用して、列の最大値を見つける必要があります。ただし、最初は、MySQLのデータベースとテーブルについて理解します。 MySQLをインストールする前に、どのバージョンとどの配布形式(バイナリファイルまたはソースファイルから)を使用するかを決定することが重要です。データベースが新しく作成された場合、データベースにテーブルがないことは明らかです。 最も重要な部分の1つは、データベースの構造、必要なテーブル、すべてのテーブルの列、およびこれらのテーブル間の関係を決定することです。データベースに含める必要のあるもの、データベースの適切な名前、および適切な列名と行の値