ホームページ  >  記事  >  データベース  >  mysql 複数の列をグループ化する

mysql 複数の列をグループ化する

(*-*)浩
(*-*)浩オリジナル
2019-05-17 18:53:332951ブラウズ

日常の開発タスクでは、MYSQL の GROUP BY グループ化を使用して、データ テーブルのグループ フィールドに基づいて統計データを取得することがよくあります。

mysql 複数の列をグループ化する

たとえば、学生のコース選択テーブルがあります。テーブルの構造は次のとおりです:

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

次の結果が得られました:

Subject    Count
------------------------------
ITB001     5
MKB114     2

テーブルには、5 人の学生が ITB001 を選択し、2 人の学生が MKB114 を選択したことが記録されているためです。

この結果の理由は次のとおりです。
GROUP BY X は、同じ X フィールド値を持つすべてのレコードをグループに入れることを意味します。
GROUP BY X、Y についてはどうですか?
GROUP BY X, Y は、同じ X フィールド値と Y フィールド値を持つすべてのレコードをグループに入れることを意味します。

次に、各学期に各科目を選択した人の数をカウントするよう求め、次の SQL を適用します:

SELECT Subject, Semester, Count(*)
FROM Subject_Selection
GROUP BY Subject, Semester

上記の SQL は、Subject_Selection テーブル内のデータをグループ化することを意味します。同じ件名と学期フィールド値を持つデータを同じグループに追加し、各グループのデータに集計関数 (COUNT、SUM、AVG など) を適用します。

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

Subject    Semester   Count
------------------------------
ITB001     1          3
ITB001     2          2
MKB114     1          2

表のレコードから、このグループ化結果が正しいことがわかります。前期では 3 人の学生が ITB001 を選択し、前期では 2 人の学生が ITB001 を選択しました。後期は IB001、前期は
と 2 名が MKB114 を選択、後期は誰も MKB114 を選択しませんでした。

概要:

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

以上がmysql 複数の列をグループ化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。