目次
MySQL MAX 関数の例
サブクエリの MySQL MAX 関数
GROUP BY 句を使用した MySQL MAX" >GROUP BY 句を使用した MySQL MAX
ホームページ データベース mysql チュートリアル mysqlで最大値をクエリする方法

mysqlで最大値をクエリする方法

Dec 31, 2021 pm 03:10 PM
mysql 最大値

mysql では、「SELECT」ステートメントと MAX() 関数を使用して最大値をクエリできます。この関数は、一連の値の最大値を返すことができます。構文「SELECT MAX(DISTINCT 式」 ) FROM データテーブル名 ;"。

mysqlで最大値をクエリする方法

このチュートリアルの動作環境: 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 列にインデックスが付けられている場合は、最初のクエリの実行が速くなります。

各グループの最大値を見つけるには、

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 set
ログイン後にコピー

HAVING 句を使用した 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQLユーザーとデータベースの関係 MySQLユーザーとデータベースの関係 Apr 08, 2025 pm 07:15 PM

MySQLデータベースでは、ユーザーとデータベースの関係は、アクセス許可と表によって定義されます。ユーザーには、データベースにアクセスするためのユーザー名とパスワードがあります。許可は助成金コマンドを通じて付与され、テーブルはCreate Tableコマンドによって作成されます。ユーザーとデータベースの関係を確立するには、データベースを作成し、ユーザーを作成してから許可を付与する必要があります。

RDS MySQL Redshift Zero ETLとの統合 RDS MySQL Redshift Zero ETLとの統合 Apr 08, 2025 pm 07:06 PM

データ統合の簡素化:AmazonrdsmysqlとRedshiftのゼロETL統合効率的なデータ統合は、データ駆動型組織の中心にあります。従来のETL(抽出、変換、負荷)プロセスは、特にデータベース(AmazonrdsmysQlなど)をデータウェアハウス(Redshiftなど)と統合する場合、複雑で時間がかかります。ただし、AWSは、この状況を完全に変えたゼロETL統合ソリューションを提供し、RDSMYSQLからRedshiftへのデータ移行のための簡略化されたほぼリアルタイムソリューションを提供します。この記事では、RDSMysQl Zero ETLのRedshiftとの統合に飛び込み、それがどのように機能するか、それがデータエンジニアと開発者にもたらす利点を説明します。

mysqlは支払う必要がありますか mysqlは支払う必要がありますか Apr 08, 2025 pm 05:36 PM

MySQLには、無料のコミュニティバージョンと有料エンタープライズバージョンがあります。コミュニティバージョンは無料で使用および変更できますが、サポートは制限されており、安定性要件が低く、技術的な能力が強いアプリケーションに適しています。 Enterprise Editionは、安定した信頼性の高い高性能データベースを必要とするアプリケーションに対する包括的な商業サポートを提供し、サポートの支払いを喜んでいます。バージョンを選択する際に考慮される要因には、アプリケーションの重要性、予算編成、技術スキルが含まれます。完璧なオプションはなく、最も適切なオプションのみであり、特定の状況に応じて慎重に選択する必要があります。

高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? 高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? Apr 08, 2025 pm 06:03 PM

MySQLデータベースパフォーマンス最適化ガイドリソース集約型アプリケーションでは、MySQLデータベースが重要な役割を果たし、大規模なトランザクションの管理を担当しています。ただし、アプリケーションのスケールが拡大すると、データベースパフォーマンスのボトルネックが制約になることがよくあります。この記事では、一連の効果的なMySQLパフォーマンス最適化戦略を検討して、アプリケーションが高負荷の下で効率的で応答性の高いままであることを保証します。実際のケースを組み合わせて、インデックス作成、クエリ最適化、データベース設計、キャッシュなどの詳細な主要なテクノロジーを説明します。 1.データベースアーキテクチャの設計と最適化されたデータベースアーキテクチャは、MySQLパフォーマンスの最適化の基礎です。いくつかのコア原則は次のとおりです。適切なデータ型を選択し、ニーズを満たす最小のデータ型を選択すると、ストレージスペースを節約するだけでなく、データ処理速度を向上させることもできます。

MySQLのユーザー名とパスワードを入力する方法 MySQLのユーザー名とパスワードを入力する方法 Apr 08, 2025 pm 07:09 PM

MySQLのユーザー名とパスワードを入力するには:1。ユーザー名とパスワードを決定します。 2。データベースに接続します。 3.ユーザー名とパスワードを使用して、クエリとコマンドを実行します。

MySQLのクエリ最適化は、特に大規模なデータセットを扱う場合、データベースのパフォーマンスを改善するために不可欠です MySQLのクエリ最適化は、特に大規模なデータセットを扱う場合、データベースのパフォーマンスを改善するために不可欠です Apr 08, 2025 pm 07:12 PM

1.正しいインデックスを使用して、データの量を削減してデータ検索をスピードアップしました。テーブルの列を複数回検索する場合は、その列のインデックスを作成します。あなたまたはあなたのアプリが基準に従って複数の列からのデータが必要な場合、複合インデックス2を作成します2。選択した列のみを避けます。必要な列のすべてを選択すると、より多くのサーバーメモリを使用する場合にのみサーバーが遅くなり、たとえばテーブルにはcreated_atやupdated_atやupdated_atなどの列が含まれます。

mysqlをコピーして貼り付ける方法 mysqlをコピーして貼り付ける方法 Apr 08, 2025 pm 07:18 PM

MySQLのコピーと貼り付けには、次の手順が含まれています。データを選択し、Ctrl C(Windows)またはCMD C(MAC)でコピーします。ターゲットの場所を右クリックして、貼り付けまたはCTRL V(Windows)またはCMD V(MAC)を使用します。コピーされたデータは、ターゲットの場所に挿入されるか、既存のデータを置き換えます(データが既にターゲットの場所に存在するかどうかに応じて)。

mysqlを表示する方法 mysqlを表示する方法 Apr 08, 2025 pm 07:21 PM

次のコマンドでmysqlデータベースを表示します。サーバーに接続します:mysql -u username -pパスワードrun showデータベース。すべての既存のデータベースを取得するコマンド[データベース]を選択します。データベース名を使用します。テーブルを表示:表を表示します。テーブル構造を表示:テーブル名を説明してください。データを表示:[テーブル名]から[ *]を選択します。

See all articles