この記事では、複数のフィールドをグループ化する 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 サイトの他の関連記事を参照してください。