複数のフィールドをグループ化するMySQLグループ

複数のフィールドをグループ化するMySQLグループ

日常の開発タスクでは、データ テーブル内のグループ化フィールドに基づいて統計データを取得するために、MYSQL の GROUP BY グループ化を頻繁に使用します。

たとえば、次のような構造を持つ学生のコース選択テーブルがあります。

テーブル: Subject_Selection

科目 学期 出席者
---------------------------------
ITB001 1 ヨハネ
ITB001 1 ボブ
ITB001 1 ミッキー
ITB001 2 ジェニー
ITB001 2 ジェームズ
MKB114 1 ヨハネ
MKB114 1 エリカ

各コースに登録した学生の数をカウントし、次の SQL を適用します。

件名、件数を選択(*)
Subject_Selection から
件名別にグループ化

以下の結果が得られます。

件名数
------------------------------
ITB001 5
MKB114 2

表には、5 人の学生が ITB001 を選択し、2 人の学生が MKB114 を選択したことが記録されています。

この結果の理由は次のとおりです。

GROUP BY X は、同じ X フィールド値を持つすべてのレコードを 1 つのグループにまとめることを意味します。

GROUP BY X, Yはどうでしょうか?

GROUP BY X, Y は、同じ X フィールド値と Y フィールド値を持つすべてのレコードを 1 つのグループにまとめることを意味します。

次に、各学期に各科目を選択する人数をカウントし、次の SQL を適用する必要があります。

科目、学期、回数を選択(*)
Subject_Selection から
科目、学期別にグループ化

上記の SQL は、Subject_Selection テーブル内のデータをグループ化し、Subject および Semester フィールド値が同じレコードを同じグループに入れ、各グループ内のデータに集計関数 (COUNT、SUM、AVG など) を適用することを意味します。

結果は次のとおりです。

科目 学期数
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2

表の記録から、グループ化の結果が正しいことがわかります。3 人の学生が第 1 学期に ITB001 を選択し、2 人の学生が第 2 学期に ITB001 を選択し、2 人の学生が第 1 学期に MKB114 を選択しました。第 2 学期に MKB114 を選択した学生はいませんでした。

複数のフィールドをグループ化するための mysql group by に関する上記の記事は、私が皆さんと共有したいことのすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • MySQLはgroup_concat()関数に基づいて複数のデータ行を結合します
  • グループフィールドを 1 行に書き込むための mysql group_concat メソッドの例
  • MySql Group Byは複数のフィールドのグループ化を実装します
  • MySQL でグループ化した後、フィールドの複数のデータを結合して表示する方法

<<:  ソースコードから、Vue2がデータとメソッドを直接取得できる理由がわかる

>>:  deepin20 で NVIDIA クローズドソース ドライバーをインストールするための詳細な手順

推薦する

MYSQL の 3 つのツリー構造テーブル設計の長所と短所の簡単な分析と共有

目次導入質問設計 1: 隣接リストテーブルデザインSQL の例デザイン 2: パスの列挙テーブルデザ...

Vue の element-ui コンポーネントのデフォルトの CSS スタイルを変更する 4 つの方法

目次序文1. グローバル統合オーバーライドを使用する2. .vueファイルを変更する3. コンポーネ...

MySQL の中国語ソートの詳細と例

MySQL の漢字ソートの詳細な説明デフォルトでは、MySQL は日付、時刻、および英語の文字列の並...

Windows Server 2008 R2 リモート デスクトップのポート 3389 を変更する方法

Windows サーバー リモート デスクトップのデフォルトのポート番号は 3389 です。職場でサ...

Docker コンテナにデータベースをデプロイする場合の欠点は何ですか?

序文Docker は過去 2 年間で非常に人気が高まっています。開発者はすべてのアプリケーションとソ...

MySQL DATE_FORMAT関数の使用

タオバオが、ダブル11に最も多くの注文をした2人のユーザー、ユーザー1:「ショッピングの皇帝、陳哈哈...

Reactはルーティングを使用してログインインターフェースにリダイレクトします

前回の記事では、webpack と react 環境を設定した後、ログイン インターフェースとその後...

Windows 上の MySQL バージョン 5.7 でエンコードを UTF-8 に変更する方法

序文MySQLの勉強を始めたばかりで、公式サイトから最新バージョン5.7.14をダウンロードしました...

Linux で 1 回限りのスケジュールされたタスクを実行するための at コマンドの使用に関する詳細な説明

目次序文1. 一度限りの計画タスクの紹介2. コマンド3. 1回限りのスケジュールタスクを作成する4...

MySQL では UTF-8 が推奨されないのはなぜですか?

最近、Rails 経由で「utf8」でエンコードされた UTF-8 文字列を MariaDB に保存...

16 の XHTML1.0 と HTML の互換性ガイドラインの概要

1.ページを XML タイプとして宣言しないでください。ページでは UTF-8 または UTF-16...

JavaScriptのスリープ関数の使用

目次1.スリープ機能2.タイムアウトを設定する3. 約束4. 非同期待機5. 1秒後に出力1、2秒後...

Linuxはデュアルネットワークカードボンドとドライバーインターフェースを使用する

債券とは何かNIC ボンドは、実稼働シナリオでよく使用されるテクノロジーです。複数の NIC を 1...

Linux yum パッケージ管理方法

導入yum (Yellow dog Updater, Modified) は、Fedora、RedH...

jQueryはフェードインとフェードアウト効果を実現します

jQuery を使用してフェードインとフェードアウト効果を完成させる前に、まずいくつかのコードを理解...