mysql では、「SELECT」ステートメントと MAX() 関数を使用して最大値をクエリできます。この関数は、一連の値の最大値を返すことができます。構文「SELECT MAX(DISTINCT 式」 ) FROM データテーブル名 ;"。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql では、「SELECT」ステートメントと MAX() 関数を使用して最大値をクエリできます。
MySQL MAX()
この関数は、一連の値の最大値を返します。 MAX()
関数は、最大数量、最も高価な製品、顧客による最大支払い額の検索など、多くのクエリで非常に便利です。
MAX()
関数の構文は次のとおりです。
MAX(DISTINCT expression);
DISTINCT
演算子を追加すると、MAX
関数は、すべての値の最大値と同じ、異なる値の最大値を返します。これは、DISTINCT
演算子が MAX
関数に影響を与えないことを意味します (DISTINCT
演算子が使用されるかどうかは関係ありません)。
DISTINCT
演算子は、COUNT、SUM、AVG などの他の 集計関数 内で有効であることに注意してください。
MySQL MAX 関数の例
サンプル データベース (yiibaidb) の payments
テーブルを見てみましょう。そのテーブル構造は次のとおりです。 -
mysql> desc payments; +----------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------+------+-----+---------+-------+ | customerNumber | int(11) | NO | PRI | NULL | | | checkNumber | varchar(50) | NO | PRI | NULL | | | paymentDate | date | NO | | NULL | | | amount | decimal(10,2) | NO | | NULL | | +----------------+---------------+------+-----+---------+-------+ 4 rows in set
payments
テーブルの最大支払い額を取得するには、次のクエリを使用できます。
SELECT MAX(amount) FROM payments;
上記のクエリ ステートメントを実行すると、次の結果が得られます-
mysql> SELECT MAX(amount) FROM payments; +-------------+ | MAX(amount) | +-------------+ | 120166.58 | +-------------+ 1 row in set
サブクエリの MySQL MAX 関数
最大支払い金額だけでなく、顧客番号、小切手番号、支払い日などの他の支払い情報も取得するには、次のことができます。サブクエリで実行します。 MAX
関数を次のように使用します。
SELECT * FROM payments WHERE amount = ( SELECT MAX(amount) FROM payments);
上記のクエリ ステートメントを実行し、次の結果を取得します。
+----------------+-------------+-------------+-----------+ | customerNumber | checkNumber | paymentDate | amount | +----------------+-------------+-------------+-----------+ | 141 | JE105477 | 2015-03-18 | 120166.58 | +----------------+-------------+-------------+-----------+ 1 row in set
上記のクエリ ステートメントはどのように実行されますか?
- サブクエリは、すべての最大支払額を返します。
- 外側のクエリは、サブクエリから返された最大金額と等しい金額の他の関連する支払い情報を取得します。
MAX
関数を使用しない代わりに、ORDER BY
句を使用して結果セットを降順に並べ替え、LIMIT を使用することもできます。
句で最初の行を取得し、次のようにクエリします。
SELECT * FROM payments ORDER BY amount DESC LIMIT 1;
上記のクエリ ステートメントを実行すると、次の結果が得られます。
+----------------+-------------+-------------+-----------+ | customerNumber | checkNumber | paymentDate | amount | +----------------+-------------+-------------+-----------+ | 141 | JE105477 | 2015-03-18 | 120166.58 | +----------------+-------------+-------------+-----------+ 1 row in set
amount# で作成していない場合## 列インデックスの場合、2 番目のクエリは
payments テーブル内のすべての行をチェックするため、より高速に実行されます。一方、最初のクエリは
payments テーブル内のすべての行を 2 回 (サブクエリ内で 1 回) チェックし、外側のクエリで 1 回。ただし、
amount 列にインデックスが付けられている場合は、最初のクエリの実行が速くなります。
GROUP BY 句を使用した MySQL MAX
各グループの最大値を見つけるには、SELECT## で実行できます。 #ステートメントで MAX
関数と GROUP BY
句を使用します。 顧客ごとに、顧客が支払った最大支払額を取得するためのクエリを実行するには、次のクエリを使用できます。
SELECT customerNumber, MAX(amount) FROM payments GROUP BY customerNumber ORDER BY MAX(amount);
上記のクエリ ステートメントを実行すると、次のクエリ結果が得られます-
+----------------+-------------+ | customerNumber | MAX(amount) | +----------------+-------------+ | 219 | 4465.85 | | 198 | 9658.74 | | 381 | 14379.9 | | 103 | 14571.44 | | 473 | 17746.26 | | 362 | 18473.71 | ******* 此处省略一大波数据 ****** | 148 | 105743 | | 124 | 111654.4 | | 141 | 120166.58 | +----------------+-------------+ 98 rows in setHAVING 句を使用した MySQL MAX
HAVING
句 #Function で MAX## を使用して、指定した条件に基づいてグループにフィルタを追加できます。条件。
たとえば、次のクエリは各顧客の最大支払い額を検索し、次のクエリ ステートメントのような返された金額に基づいて、
80000-
を超える支払いのみをクエリします。
SELECT customerNumber, MAX(amount) FROM payments GROUP BY customerNumber HAVING MAX(amount) > 80000;が実行されます。 上記のクエリ ステートメントにより、次の結果が得られます。 -
+----------------+-------------+ | customerNumber | MAX(amount) | +----------------+-------------+ | 114 | 82261.22 | | 124 | 111654.4 | | 141 | 120166.58 | | 148 | 105743 | | 167 | 85024.46 | | 239 | 80375.24 | | 321 | 85559.12 | +----------------+-------------+ 7 rows in set
[関連する推奨事項:
mysql ビデオ チュートリアル ]以上がmysqlで最大値をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

MySQLは、非同期、半同期、およびグループ複製の3つのモードを介してデータの複製を処理します。 1)非同期の複製パフォーマンスは高くなりますが、データが失われる可能性があります。 2)半同期複製により、データセキュリティが向上しますが、遅延が増加します。 3)グループレプリケーションは、高可用性要件に適したマルチマスターレプリケーションとフェールオーバーをサポートします。

説明ステートメントは、SQLクエリのパフォーマンスを分析および改善するために使用できます。 1.説明ステートメントを実行して、クエリプランを表示します。 2。出力結果を分析し、アクセスの種類、インデックスの使用量に注意し、順序を結合します。 3.分析結果に基づいてインデックスを作成または調整し、結合操作を最適化し、フルテーブルスキャンを回避してクエリ効率を向上させます。

論理バックアップにMySQLDUMPとホットバックアップにMySQLenterPriseBackupを使用することは、MySQLデータベースをバックアップする効果的な方法です。 1. mysqldumpを使用してデータベースをバックアップします:mysqldump-uroot-pmydatabase> mydatabase_backup.sql。 2。ホットバックアップにmysqlenterprisebackupを使用:mysqlbackup - user = root-password = password - backup-dir =/path/to/backupbackup。回復するときは、対応する寿命を使用します

MySQLのクエリが遅い主な理由には、インデックスの欠落または不適切な使用、クエリの複雑さ、過剰なデータボリューム、および不十分なハードウェアリソースが含まれます。最適化の提案には以下が含まれます。1。適切なインデックスを作成します。 2。クエリステートメントを最適化します。 3.テーブルパーティションテクノロジーを使用します。 4.適切にハードウェアをアップグレードします。

MySQLビューは、SQLクエリの結果に基づいた仮想テーブルであり、データを保存しません。 1)ビューは複雑なクエリを簡素化し、2)データセキュリティを強化し、3)データの一貫性を維持します。ビューは、テーブルのように使用できるデータベースにクエリを保存しますが、データは動的に生成されます。

MySQLdiffersfromotherSQLdialectsinsyntaxforLIMIT,auto-increment,stringcomparison,subqueries,andperformanceanalysis.1)MySQLusesLIMIT,whileSQLServerusesTOPandOracleusesROWNUM.2)MySQL'sAUTO_INCREMENTcontrastswithPostgreSQL'sSERIALandOracle'ssequenceandt

MySQLパーティション化により、パフォーマンスが向上し、メンテナンスが簡素化されます。 1)大きなテーブルを特定の基準(日付範囲など)、2)物理的に独立したファイルに物理的に分割する、3)MySQLはクエリするときに関連するパーティションに焦点を合わせることができます。

mysqlで許可を許可および取り消す方法は? 1。grantallprivilegesondatabase_name.to'username'@'host 'などの許可を付与するために付与ステートメントを使用してください。 2。Revokeallprivilegesondatabase_name.from'username'@'host 'など、Revoke Statementを使用して、許可のタイムリーな通信を確保します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1
使いやすく無料のコードエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









