データベース応用コース2/9
データをグルーピングしてみよう
このシナリオではデータの集約(グルーピング)について学んでいきます。
集約を使うことで、データをカテゴリにごとに分類して表示させることができるようになります。
集約とは
集約とは指定した条件に沿ってデータをグループ分けすることです。
データベースにはさまざまなデータが入っていますが、そのデータ同士を指定した条件で分割し、それらを集計(例: 合計数を出す)したいというケースも存在します。
例えば書籍のデータが大量に保管されているBooksテーブルがあったとしましょう。そのBooksテーブルに保管されている書籍には技術書や小説などのカテゴリが付けられています。
name | category |
---|---|
Life with Envader | 自己啓発書 |
開発者の気持ち | 雑誌 |
点と点を結ぶWeb開発概論 | 技術書 |
美肌のブランディング | ビジネス書 |
この1冊で完璧!Network基礎概念 | 技術書 |
上のようなテーブルにあるデータをカテゴリごとに分け、それぞれの合計数を取得したいとしましょう。その際に集約を行います。
GROUP BY の使い方
MySQLでデータを集約するにはGROUP BY句を使います。
SELECT COUNT(*) FROM books GROUP BY category;
GROUP BY句の後ろにグループ分けする基準のカラム名を記述します。今回の場合は書籍のカテゴリごとにグループ分けしたいので、categoryを指定します。上のSQL文を実行すると、categoryの値ごとにグループ分けされ、それぞれのデータ数の合計が表示されます。
このように、とあるデータを特定のカラムの値を条件に分類分けするにはGROUP BY句を使ってデータを集約することができます。
問題を解くためには、十分な画面サイズのPC環境をご利用下さい。