SQL GROUP BYの詳細な説明と簡単な例

SQL GROUP BYの詳細な説明と簡単な例

GROUP BY ステートメントは、Aggregate 関数と組み合わせて使用​​され、1 つ以上の列に基づいて結果セットをグループ化します。

SQL GROUP BY 構文

SELECT 列名、集計関数(列名)
テーブル名から
WHERE 列名 演算子 値
GROUP BY 列名;

デモデータベース

このチュートリアルでは、よく知られている Northwind サンプル データベースを使用します。

「注文」テーブルから選択されたデータは次のとおりです。

注文ID顧客ID従業員ID注文日発送者ID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

「Shippers」テーブルのデータ:

発送者ID発送者名電話
1スピーディーエクスプレス(503)555-9831
2ユナイテッドパッケージ(503)555-3199
3連邦配送(503)555-9931

「従業員」テーブルから選択されたデータ:

従業員ID苗字ファーストネーム生年月日写真注記
1ダヴォリオナンシー1968-12-08エンプID1.pic学歴にはBAが含まれます。
2フラーアンドリュー1952-02-19 EmpID2.picアンドリューはBTSを受け取りました....
3レバリングジャネット1963-08-30 EmpID3.picジャネットは理学士号を持っています。

SQL GROUP BY の例

ここで、各配達員が配達した注文の数を調べます。

次の SQL ステートメントは、配達員ごとに注文を分類してカウントします。

SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
左 参加する 荷主
ON Orders.ShipperID=Shippers.ShipperID
GROUP BY 出荷者名;

複数の列をGROUP BYする

次に示すように、GROUP BY 句を複数の列に適用することもできます。

Shippers.ShipperName、Employees.LastName、を選択します。
COUNT(Orders.OrderID) AS NumberOfOrders
から ((注文
INNER JOIN 荷送人
ON Orders.ShipperID = Shippers.ShipperID)
内部結合従業員
ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY 出荷者名、姓;

読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。

以下もご興味があるかもしれません:
  • Mysqlはグループによるソートを使用する
  • MySQL 5.7 の新機能によるグループ エラー 1055 の解決方法
  • SQL における order by と group by の違い
  • サンプルコードを持つMySQLグループ
  • MYSQL GROUP BY の使用法の詳細な説明
  • MySQL での SQL ステートメント Groupby の誤った使用
  • MySQL で GROUP BY を使用して最初の N レコードを取得する方法
  • MySQL は GROUP BY を最適化します (ルーズ インデックス スキャンとコンパクト インデックス スキャン)
  • MySQLグループクエリGroup Byの実装原理の詳細な説明

<<:  Linux サーバーに埋め込まれた ddgs および qW3xT.2 マイニング ウイルスの対処の実践記録

>>:  Vueはシンプルな計算機を実装する

推薦する

空のパスがページのパフォーマンスに与える影響に対する解決策

数日前、Google Reader で Yu Bo さんが共有した投稿「空のパスがページのパフォーマ...

Linux システム Docker への ASP.NET Core アプリケーションのデプロイのプロセス分析

目次1. システム環境2. 運用プロセスと途中で遭遇した問題1. システム環境1. Tencent ...

Samba を使用して Linux サーバー上で共有ファイル サービスを構築する方法

最近、私たちの小さなチームは、サーバー上の共有フォルダーを共有して、全員がパブリックリソースドキュメ...

Angularデータバインディングとその実装の詳細な説明

目次序文データバインディングとは何ですか? Angular のデータバインディングの種類一方向データ...

数ステップでサイバーパンク2077風の視覚効果を実現するCSS

背景記事を始める前に、賽博朋克とは何か、賽博朋克2077とは何かを簡単に理解しましょう。サイバーパン...

nodejs で worker_threads を使用して新しいスレッドを作成する方法

導入前の記事で述べたように、NodeJS には 2 種類のスレッドがあります。1 つは、ユーザー リ...

HTML タグでの this の使用法の紹介

例えば:コードをコピーコードは次のとおりです。 <html> <ヘッド> &...

Alpine イメージに Ansible サービスを追加する方法

apk add ansible を使用して、alpine イメージに ansible サービスを追加...

MySQLデータベースについて学びましょう

目次1. データベースとは何ですか? 2. データベースの分類は? 3. データベースとデータ構造の...

CSS3 で作成した本のページめくり効果

結果:実装コード: html <!-- よろしければハートを付けてください! --> &...

JavaScript にはすでに Object があるのに、なぜ Map が必要なのでしょうか?

目次1. オブジェクトをマップとして扱わない1. 未定義のプロパティはプロトタイプチェーンを通じてア...

MySQL 5.7.17 圧縮バージョンのインストールノート

この記事では、参考までにMySQL 5.7.17圧縮版のインストール手順を紹介します。具体的な内容は...

Web ページでフラッシュの wmode 属性を使用する方法をご存知ですか?

Web 開発を行う際に、フラッシュがページ内の要素をブロックする状況に遭遇することがあります。フラ...

Kubernetes (k8s) 入門

Kubernetes は面白そうだったので(ギリシャ人なら名前に問題があると思うでしょうが)、ずっと...

Linux カーネル デバイス ドライバー カーネル時間管理に関する注意事項

/****************** * Linux カーネルの時間管理 ***********...