検索
ホームページデータベースmysql チュートリアルグループ化とはどういう意味ですか?

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;

执行上面查询,得到以下结果 -

1グループ化とはどういう意味ですか?

请注意,在GROUP BY子句中使用DESC以降序对状态进行排序。我们还可以在GROUP BY子句中明确指定ASC,按状态对分组进行升序排序。

【相关推荐:mysql视频教程

以上がグループ化とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLはデータレプリケーションをどのように処理しますか?MySQLはデータレプリケーションをどのように処理しますか?Apr 28, 2025 am 12:25 AM

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

説明ステートメントを使用してクエリパフォーマンスを分析するにはどうすればよいですか?説明ステートメントを使用してクエリパフォーマンスを分析するにはどうすればよいですか?Apr 28, 2025 am 12:24 AM

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

MySQLデータベースをバックアップして復元するにはどうすればよいですか?MySQLデータベースをバックアップして復元するにはどうすればよいですか?Apr 28, 2025 am 12:23 AM

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

MySQLのスロークエリの一般的な原因は何ですか?MySQLのスロークエリの一般的な原因は何ですか?Apr 28, 2025 am 12:18 AM

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

mysqlのビューは何ですか?mysqlのビューは何ですか?Apr 28, 2025 am 12:04 AM

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

MySQLと他のSQL方言の構文の違いは何ですか?MySQLと他のSQL方言の構文の違いは何ですか?Apr 27, 2025 am 12:26 AM

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

MySQLパーティションは何ですか?MySQLパーティションは何ですか?Apr 27, 2025 am 12:23 AM

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

MySQLで特権をどのように許可して取り消しますか?MySQLで特権をどのように許可して取り消しますか?Apr 27, 2025 am 12:21 AM

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

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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

DVWA

DVWA

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

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SecLists

SecLists

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

SublimeText3 Mac版

SublimeText3 Mac版

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