MySql で Group By を使用して複数のフィールドをグループ化する方法

黄舟
リリース: 2019-03-02 16:05:21
オリジナル
7033 人が閲覧しました

この記事では、複数のフィールドをグループ化する MySql Group By の実装方法を主に紹介しますので、必要な方は参考にしてください

関連する mysql ビデオ チュートリアル: 「mysql チュートリアル

日々の開発タスクでよく使用されます。 MYSQL の GROUP BY グループ化を使用して、データ テーブルのグループ化フィールドに基づいて統計データを取得します。たとえば、次の構造を持つ学生コース選択テーブルがあります。

Table: Subject_Selection
Subject  Semester  Attendee
---------------------------------
ITB001  1     John
ITB001  1     Bob
ITB001  1     Mickey
ITB001  2     Jenny
ITB001  2     James
MKB114  1     John
MKB114  1     Erica
ログイン後にコピー

各コースにサインアップした学生の数をカウントしたいとします。 次の SQL を適用します。

SELECT Subject, Count(*)
FROM Subject_Selection
GROUP BY Subject
ログイン後にコピー

次の結果が得られます。テーブル ITB001 には 5 つの生徒の選択肢が記録されており、2 人の生徒が MKB114 を選択しました。

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

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

GROUP BY X、Y についてはどうですか?

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

次に、各学期に各科目を選択した人の数を数えるよう依頼し、次の SQL を適用します:

Subject  Count
------------------------------
ITB001   5
MKB114   2
ログイン後にコピー

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

得られた結果は次のとおりです:

SELECT Subject, Semester, Count(*)
FROM Subject_Selection
GROUP BY Subject, Semester
ログイン後にコピー

表の記録から、このグループ分けの結果は、前期では 3 人の学生が ITB001 を選択し、後期では 2 人の学生が ITB001 を選択したことがわかります。前期では MKB114 を選択した学生が 2 名でしたが、後期では MKB114 を選択した学生はいませんでした。

もう 1 つの例は、すべての支払われた注文を記録する注文テーブルです

テーブル: Order

Subject  Semester  Count
------------------------------
ITB001   1     3
ITB001   2     2
MKB114   1     2
ログイン後にコピー

ここで、各ユーザーが各製品に費やした合計金額をカウントしたいと思います。次の SQL を実行します

Product  Buyer    Spending
---------------------------------
PD001   Todd     12.00
PD001   Todd     12.00
PD001   Todd     12.00
PD001   Lily     12.00
PD001   Lily     12.00
PD002   Todd     20.00
PD002   Todd     20.00
ログイン後にコピー

得られる結果は次のとおりです。以下のように:

SELECT Product,Buyer, SUM(Spending)
FROM `Order`
GROUP BY Product, Buyer
ログイン後にコピー

概要:

MYSQL で GROUP BY を使用してテーブル内のデータをグループ化する場合、GROUP BY X は、同じ X フィールド値を持つすべてのレコードを 1 つにまとめることを意味します。グループ化では、

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

以上がMySql で Group By を使用して複数のフィールドをグループ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート