検索
ホームページデータベースmysql チュートリアルMySQL の集計クエリとユニオン クエリの操作の分析例

1. 集計クエリ

1. 集計関数 (count、sum、avg...)

一般的な統計合計、タイ値の計算、およびその他の操作は、次を使用して実装できます。集約関数 、一般的な集約関数は次のとおりです:

MySQL の集計クエリとユニオン クエリの操作の分析例

MySQL の集計クエリとユニオン クエリの操作の分析例

MySQL の集計クエリとユニオン クエリの操作の分析例

MySQL の集計クエリとユニオン クエリの操作の分析例

  • where ステートメントと order by ステートメントを最後に追加できることに注意してください。これらの集計関数は、これらのステートメントの結果セットに基づいてクエリを実行します。

  • そうしないことをお勧めします。 MySQL の制限は他のデータベースの制限と異なるため、制限を追加します

  • 統計列の集計関数を使用する場合は、他の列を書き込まないようにしてください。そうしないと、この問題が発生します。最初の列は無意味に表示されます

MySQL の集計クエリとユニオン クエリの操作の分析例

注:

1. カウント: count (*)、count (0)、count (1) を使用できます。平たく言えば、テーブル全体から 1 を選択するのと同じです。この count の 0 と 1 がパラメーターとして渡されるだけです。 、最初に 1 を選択し、次に count

MySQL の集計クエリとユニオン クエリの操作の分析例

MySQL の集計クエリとユニオン クエリの操作の分析例

MySQL の集計クエリとユニオン クエリの操作の分析例

##2 の値を数えます。sum、max、 min も avg も * で渡すことはできません。フィールドまたは式は

3 を使用して渡す必要があります。avg は sum と組み合わせることができ、複数の集計関数を一緒に使用できます

2. GROUP BY 句

GROUP BY 句を使用して、特定の列に対してグループ クエリを実行します。満たす必要がある: グループ化クエリに GROUP BY を使用する場合、SELECT で指定されたフィールドは「グループ化フィールド」である必要があり、他のフィールドを SELECT に表示する場合は集計関数に含める必要があります。

  • Select の後の集計関数は、Group by によるグループ化が完了した後に実行されます。

  • Group by ステートメントの本質はグループ化であり、集計クエリでよく使用されます。

構文を使用します:

MySQL の集計クエリとユニオン クエリの操作の分析例

MySQL の集計クエリとユニオン クエリの操作の分析例#Select で指定されたフィールドgroup by の後にある必要があります。 Yes と no は集計関数でのみ使用できます。そうでない場合は、問題が発生します。

GROUP BY Notes

1. Group by ステートメントの本質は次のとおりです。グループ化、多くの場合、集計クエリと一緒に使用します

2。集計関数がある限り、グループ化できます

3。グループ化操作では、クエリによりフィールドと集計関数をグループ化できます。 、および他の非グループ化フィールドを保証する必要があります。 グループ化後に複数の行が存在することはありません (学生 ID のグループ化など、学生 ID のグループ化後は行が 1 つしかないため、クエリ フィールドに学生名を含めることができます)

4. グループ化する前に where を使用して条件をフィルターし、グループ化した後に had を使用します (コードは実行の順序です)

実行順序: from > on> join > where > group by > with > getting >select > Distinct > order by > limit

    実行は最初から開始されるため、エイリアスは通常ここに名前を付けます。select で名前を付けることもできますが、select は後で実行され、先頭に名前が付けられます。これらの場所はいずれも実行には使用されません。
  • 制限は常に最後に実行されます
  • 5.---スコアが 60 を超えるグループの学生からクラス ID、平均 (スコア) を選択しますby classid hasving classid

    まずスコア > 60 の行を検索し、クラス ID に従ってグループ化します。得られた結果からクラス

    6.group by は、繰り返しの行を 1 つの行にマージすることです

    7。 group by フィールド数が多い場合はマージできない場合がありますが、グループ化の効果は得られ、集計関数も使用できます。

    3.HAVING

    GROUP BY 句でグループ化した後、グループ化された結果を条件付きでフィルターする必要がある場合、WHERE ステートメントは使用できず、HAVING を使用する必要があります。 HAVING は GROUP BY

    の後に実行されます

    MySQL の集計クエリとユニオン クエリの操作の分析例

    2.ユニオン クエリ ((強調) 複数のテーブル)

    1.内部結合

    構文:

    MySQL の集計クエリとユニオン クエリの操作の分析例

    2 番目の方法では、接続条件とフィルタリング結果セット条件の違いが区別できない場合があります。どちらを使用しても構いませんが、後続の外部結合に対応するために、最初のものを優先してください。内部結合は、取得したデカルト積に接続条件を与えるのと等価です。

    MySQL の集計クエリとユニオン クエリの操作の分析例

    ここで group by を使用しない場合は、次のような 1 行だけになります。これは等価です。すべての生徒の得点を合計します。必要なのは各学生の合計スコアなので、最初に学生 ID に従ってグループ化する必要があります。

    MySQL の集計クエリとユニオン クエリの操作の分析例

    2. 外部結合

    外部結合は、左外部結合と右外部結合に分けられます。左外部結合は、結合クエリを実行したときに左側のテーブルが完全に表示される場合の接続方法であり、右外部結合は、結合クエリが実行された場合に右側のテーブルが完全に表示される場合の接続方法です。

    注:

    • 左結合: 左のテーブルのデータは、結合条件 (以降の部分を含む) に基づきません。 the and) フィルタリングしてすべてを表示します。後で where や他の条件を追加するなど、他の条件もフィルタリングできます。

    • 右のテーブルに接続条件を満たさない値のデータがある場合、右のテーブルのデータはnull、左のテーブルはすべて表示されます

    構文: (注: on の後に where を続けることもできます)

    MySQL の集計クエリとユニオン クエリの操作の分析例

    MySQL の集計クエリとユニオン クエリの操作の分析例

    同じクエリこの方法では、今回は 8 位の結果が表示されます。 空の学生情報の場合、左のテーブル、つまり学生テーブルのすべてのデータが表示され、接続条件 stu.id = sco の影響を受けません。 Student_id. 前の 以内の場合 接続時、 は学生「中国語学習外国人」 の情報を表示できません。は、sco テーブルにある学生「中国語を学習する外国人」の ID ではありません。

    3.自己結合

    自己結合とは、同じテーブル内で自分自身を接続してクエリを実行することを指します。

    使用シナリオ: 同じテーブル内の複数の行を比較します。

    注: 自己結合クエリは、join on ステートメントを使用してクエリすることもできます。

    MySQL の集計クエリとユニオン クエリの操作の分析例

    4. サブクエリ

    サブクエリは、他の SQL ステートメントに埋め込まれた選択ステートメントを指し、ネストされたクエリとも呼ばれます

    クエリとクラスメート「卒業したくない」学生の数: (自己結合)

    MySQL の集計クエリとユニオン クエリの操作の分析例

    複数行サブクエリ: 複数行のレコードを返すサブクエリ (頻繁に使用されます)

    ケース: 「中国語」または「英語」コースのスコア情報をクエリする: (内部接続)

    MySQL の集計クエリとユニオン クエリの操作の分析例

    MySQL の集計クエリとユニオン クエリの操作の分析例

    ここでグループ化します。マージには役割を果たしませんが、グループ化には役割を果たします

    MySQL の集計クエリとユニオン クエリの操作の分析例

    5. マージ クエリ

    実際のアプリケーションでは、実行をマージするために、結果として、集合演算子 Union、Union all を使用できるようになります。 UNION および UNION ALL を使用する場合、クエリの前後の 結果セット内のフィールドは 一貫している必要があります。

    #**場合によっては、複数のテーブルを関連付けることはできませんが、同じフィールド内のデータをクエリする必要があります。

    **ユニオンは or より効率的です

      ##union
    • この演算子は、2 つの結果セットの結合を取得するために使用されます。この演算子は、結果セット内の重複行を自動的に削除し、データの内容がまったく同じである場合に自動的に重複を排除します。

    ケース: ID が 3 未満、または名前が「English」のコースをクエリする:

    MySQL の集計クエリとユニオン クエリの操作の分析例

      union all

    この演算子は、2 つの結果セットの和集合を取得するために使用されます。この演算子を使用すると、結果セット内の重複行は削除されません。 (取得したデータが全く同じ場合は重複せず表示されます)

    #ケース: ID が 3 未満または名前が「Java」のコースをクエリする

    MySQL の集計クエリとユニオン クエリの操作の分析例

以上がMySQL の集計クエリとユニオン クエリの操作の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
データ処理と計算にMySQL関数を使用する方法データ処理と計算にMySQL関数を使用する方法Apr 29, 2025 pm 04:21 PM

MySQL関数は、データ処理と計算に使用できます。 1.基本的な使用には、文字列処理、日付計算、数学操作が含まれます。 2。高度な使用法には、複数の関数を組み合わせて複雑な操作を実装することが含まれます。 3.パフォーマンスの最適化では、Where句での機能の使用を回避し、GroupByおよび一時テーブルを使用する必要があります。

MySQLにデータを挿入する効率的な方法MySQLにデータを挿入する効率的な方法Apr 29, 2025 pm 04:18 PM

MySQLでデータを挿入するための効率的な方法には、次のものが含まれます。1。insertInto ...値構文、2。LoadDatainFileコマンドの使用、3。トランザクション処理の使用、4。バッチサイズの調整、5。Insurtignoreまたは挿入の使用...

フィールドをMySQLテーブルに追加および削除する手順フィールドをMySQLテーブルに追加および削除する手順Apr 29, 2025 pm 04:15 PM

MySQLでは、AlterTabletable_nameaddcolumnnew_columnvarchar(255)afterexisting_columnを使用してフィールドを追加し、andtabletable_namedopcolumncolumn_to_dropを使用してフィールドを削除します。フィールドを追加するときは、クエリのパフォーマンスとデータ構造を最適化する場所を指定する必要があります。フィールドを削除する前に、操作が不可逆的であることを確認する必要があります。オンラインDDL、バックアップデータ、テスト環境、および低負荷期間を使用したテーブル構造の変更は、パフォーマンスの最適化とベストプラクティスです。

MySQLクエリの実行計画を分析する方法MySQLクエリの実行計画を分析する方法Apr 29, 2025 pm 04:12 PM

説明コマンドを使用して、MySQLクエリの実行計画を分析します。 1.説明コマンドは、パフォーマンスのボトルネックを見つけるのに役立つクエリの実行計画を表示します。 2。実行計画には、ID、select_type、table、type、baining_keys、key、key_len、ref、行、およびextraなどのフィールドが含まれます。 3。実行計画によると、インデックスを追加し、完全なテーブルスキャンを避け、参加操作の最適化、オーバーレイインデックスの使用により、クエリを最適化できます。

MySQLサブクエリを使用してクエリ効率を向上させる方法MySQLサブクエリを使用してクエリ効率を向上させる方法Apr 29, 2025 pm 04:09 PM

サブクエリは、MySQLクエリの効率を向上させることができます。 1)Subqueryは、データのフィルタリングや集約値の計算など、複雑なクエリロジックを簡素化します。 2)MySQL Optimizerは、サブクエリを操作に参加させてパフォーマンスを向上させることができます。 3)INの代わりに存在することは、複数の行の戻りエラーを回避できます。 4)最適化戦略には、関連するサブ征服の回避、存在の使用、インデックスの最適化、およびサブクエリネスティングの回避が含まれます。

mysqlの文字セットと照合ルールを構成する方法mysqlの文字セットと照合ルールを構成する方法Apr 29, 2025 pm 04:06 PM

MySQLで文字セットと照合を構成する方法は次のとおりです。1。サーバーレベルでの文字セットとコレクションの設定:setNames'utf8 '; setCharacterSetutf8; setCollat​​ion_connection = 'utf8_general_ci'; 2。特定の文字セットと照合を使用するデータベースを作成します:createdatabaseexample_dbcharactersetutf8collat​​eutf8_general_ci; 3.テーブルを作成するときに文字セットとコレクションを指定:createTableExample_table(idint

MySQLをアンインストールし、残留ファイルをクリーンする方法MySQLをアンインストールし、残留ファイルをクリーンする方法Apr 29, 2025 pm 04:03 PM

安全かつ徹底的にMySQLをアンインストールし、すべての残留ファイルをクリーンにするには、次の手順に従ってください。1。MySQLサービスを停止します。 2。MySQLパッケージをアンインストールします。 3.構成ファイルとデータディレクトリのクリーン。 4.アンインストールが徹底していることを確認します。

MySQLのデータベースの名前を変更する方法MySQLのデータベースの名前を変更する方法Apr 29, 2025 pm 04:00 PM

MySQLでデータベースを変更するには、間接的な方法が必要です。手順は次のとおりです。1。新しいデータベースを作成します。 2。mysqldumpを使用して、古いデータベースをエクスポートします。 3.データを新しいデータベースにインポートします。 4.古いデータベースを削除します。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール