group by は「グループ クエリ」を意味し、「特定のルールに従って (グループ化して) グループ化する」と理解できます。その機能は、特定のルール領域を通じてデータ セットをいくつかの小さなグループに分割することです。次に、いくつかの小さな領域に対してデータ処理を実行します。 MySQL では、GROUP BY は 1 つ以上のフィールドに基づいてクエリ結果をグループ化するために使用される SELECT ステートメントのオプションの句で、結果セット内の行数を減らします。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
group by は「グループ クエリ」を意味します。
Group By ステートメントは、英語で直訳すると「特定のルールに従って (グループに) グループ化する」という意味です。その機能は、データセットを特定のルールに従っていくつかの小領域に分割し、いくつかの小領域に対してデータ処理を実行することです。
MySQL は GROUP BY グループ クエリを使用します
MySQL では、GROUP BY キーワードを使用して、1 つ以上のフィールドに基づいてクエリ結果をグループ化できます。
GROUP BY 句は、列または式の値に基づいて、一連の行を要約行レコードの小さなグループにグループ化します。 GROUP BY 句は、グループごとに 1 行を返します。つまり、結果セット内の行数が減ります。
GROUP BY 句は、SUM、AVG、MAX、MIN、COUNT などの集計関数とともによく使用されます。集計関数は、各グループに関する情報を計算するために SELECT 句で使用されます。
GROUP BY 句は、SELECT ステートメントのオプションの句です。 GROUP BY 句の構文は次のとおりです。
SELECT c1, c2,..., cn, aggregate_function(ci) FROM table WHERE where_conditions GROUP BY c1 , c2,...,cn;
GROUP BY 句は、FROM 句と WHERE 句の後に指定する必要があります。 GROUP BY キーワードの後には、行をグループ化する条件として使用される列または式のカンマ区切りのリストが続きます。
MySQL GROUP BY の例
1. シンプルな MySQL GROUP BY の例
サンプル データベースを見てみましょう ( yiibaidb )、その構造は次のとおりです。 -
mysql> desc orders;
注文ステータスの値をサブグループにグループ化すると仮定すると、GROUP BY 句を使用する必要があります。ステータス列によるグループ化を指定し、次のようにクエリします。
SELECT status FROM orders GROUP BY status;
上記のクエリ ステートメントを実行すると、次の結果が得られます。
GROUP BY 句の戻り値は一意です。次のクエリに示すように、DISTINCT 演算子と同様に機能します。
SELECT DISTINCT status FROM orders;
上記のクエリ ステートメントを実行すると、次の結果が得られます-
2 、MySQL GROUP BY および集計関数
集計関数を使用すると、行のグループに対して計算を実行し、単一の値を返すことができます。 GROUP BY 句は、グループごとに計算を実行して単一の値を返すために、集計関数とともによく使用されます。
たとえば、各ステータスの注文数を知りたい場合は、以下に示すように COUNT 関数と GROUP BY 句クエリ ステートメントを使用できます。
SELECT status, COUNT(*) AS total_number FROM orders GROUP BY status;
上記を実行します。クエリ ステートメントを実行すると、次の結果が得られます -
次の注文 (orders) テーブルと注文詳細 (orderdetails) テーブルを参照してください。その ER 図は次のとおりです-
ステータスごとにすべての注文の合計金額を取得するには、orderdetails テーブルを使用して注文テーブルを接続し、SUM 関数を使用して合計金額を計算します。次のクエリを参照してください。
SELECT status, SUM(quantityOrdered * priceEach) AS amount FROM orders INNER JOIN orderdetails USING (orderNumber) GROUP BY status;
上記のクエリを実行すると、次の結果が得られます。 -
同様に、次のクエリは注文番号と各注文の合計金額。
SELECT orderNumber, SUM(quantityOrdered * priceEach) AS total FROM orderdetails GROUP BY orderNumber;
上記のクエリを実行すると、次の結果が得られます-
3. MySQL GROUP BY 式の例
列に加えて、行も式によってグループ化できます。次のクエリは、年間の総売上高を取得します。
SELECT YEAR(orderDate) AS year, SUM(quantityOrdered * priceEach) AS total FROM orders INNER JOIN orderdetails USING (orderNumber) WHERE status = 'Shipped' GROUP BY YEAR(orderDate);
上記のクエリを実行すると、次の結果が得られます。 -
この例では、YEAR 関数を使用して、注文日 (注文日)。ステータスが「発送済み」の注文のみが含まれます。 SELECT 句に使用する式は、GROUP BY 句の式と同じである必要があることに注意してください。
MySQL GROUP BY および HAVING 句
HAVING 句を使用して、GROUP BY 句によって返されたグループをフィルタリングできます。次のクエリでは、HAVING 句を使用して 2013 年以降の年間売上合計を選択します。
SELECT YEAR(orderDate) AS year, SUM(quantityOrdered * priceEach) AS total FROM orders INNER JOIN orderdetails USING (orderNumber) WHERE status = 'Shipped' GROUP BY year HAVING year > 2013;
上記のクエリを実行すると、次の結果が得られます -
GROUP BY子句:MySQL与标准SQL
标准SQL不允许使用GROUP BY子句中的别名,但MySQL支持此选项。以下查询从订单日期提取年份,并对每年的订单进行计数。该year用作表达式YEAR(orderDate)的别名,它也用作GROUP BY子句中的别名,此查询在标准SQL中无效。
参考以下查询 -
SELECT YEAR(orderDate) AS year, COUNT(orderNumber) FROM orders GROUP BY year;
执行上面查询,得到以下结果 -
MySQL还允许您以升序或降序(标准SQL不能提供)对组进行排序。默认顺序是升序。例如,如果要按状态获取订单数量并按降序对状态进行排序,则可以使用带有DESC的GROUP BY子句,如下查询语句:
SELECT status, COUNT(*) FROM orders GROUP BY status DESC;
执行上面查询,得到以下结果 -
请注意,在GROUP BY子句中使用DESC以降序对状态进行排序。我们还可以在GROUP BY子句中明确指定ASC,按状态对分组进行升序排序。
【相关推荐: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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

Dreamweaver Mac版
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

ホットトピック









