GROUP BY句を使ってMySQLビューを作成する方法をわかりやすく解説
GROUP BY句は、特定のカラムの値をグループ化するために使用でき、必要に応じてそのカラムに対して集計計算を行うことも可能です。グループ化されたカラムには、COUNT、SUM、AVGなどの集計関数を適用できます。
ここでは、GROUP BY句とビューの組み合わせを理解するために、以下のようなデータを持つベーステーブル「Student_info」から、「Info」という名前のビューを作成してみましょう。
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 125 | Raman | Shimla | Computers | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +------+---------+------------+------------+ 6 rows in set (0.00 sec)
基本構文
GROUP BY句を含むビューを作成する際の基本的な構文は以下の通りです。
Create or Replace View view_name AS Select_statements FROM table GROUP BY expression1, expression2, ... expression_n;
構文のポイント
- Create or Replace View:同名のビューが既に存在する場合は置き換え、存在しない場合は新規作成します。
- view_name:作成するビューの名前を指定します。
- Select_statements:ビューの定義となるSELECT文を記述します。
- GROUP BY:グループ化の基準となる1つ以上の式(カラム)を指定します。
例1:単一カラムでグループ化したビュー
まず、Subject(科目)カラムでグループ化し、各科目のレコード数をCOUNT関数で集計するビューを作成します。
mysql> Create or Replace View Info AS select Subject, COUNT(*) FROM Student_info GROUP BY Subject; Query OK, 0 rows affected (0.10 sec) mysql> Select * from info; +------------+----------+ | Subject | COUNT(*) | +------------+----------+ | Computers | 3 | | Economics | 1 | | History | 1 | | Literature | 1 | +------------+----------+ 4 rows in set (0.00 sec)
この結果から、Computersが3件、Economics・History・Literatureがそれぞれ1件であることが一目でわかります。このように、GROUP BY句を使ったビューは集計結果を簡潔に表示するのに非常に便利です。
例2:複数カラムでグループ化したビュー
次に、GROUP BY句に2つのカラム(SubjectとName)を指定してビューを作成してみます。
mysql> Create or Replace View Info AS select Subject,Name, COUNT(Subject) FROM Student_info GROUP BY Subject, Name; Query OK, 0 rows affected (0.05 sec) mysql> Select * from info; +------------+---------+----------------+ | Subject | Name | COUNT(Subject) | +------------+---------+----------------+ | Computers | Mohan | 1 | | Computers | Ram | 1 | | Computers | Raman | 1 | | Economics | Shyam | 1 | | History | YashPal | 1 | | Literature | Gaurav | 1 | +------------+---------+----------------+ 6 rows in set (0.00 sec)
上記のように、GROUP BY句に複数のカラムを指定すると、それらのカラム値の組み合わせごとに行がグループ化されます。今回の例では「科目×学生名」の組み合わせがすべて一意であるため、各行のカウントは1になっています。
まとめ
GROUP BY句は、一連の行をカラムの値に基づいてサマリー行(要約行)の集合へとグループ化します。ビューと組み合わせることで、頻繁に使う集計クエリを保存しておき、いつでも簡単に呼び出せるようになるため、データ分析やレポート作成の効率が大幅に向上します。
-
MySQLビュー(VIEW)にWHERE句を使う方法をわかりやすく解説
MySQLビューでWHERE句を使用する方法MySQLでは、作成済みのビュー(VIEW)に対して、通常のテーブルと同じようにWHERE句を指定してデータを絞り込むことができます。基本となる構文は以下の通りです。select * from yourViewName where yourColumnName=yourValue;それでは、実際にサンプルを使って手順を確認していきましょう。1. サンプルテーブルを作成するまず、学生情報を格納するテーブルを作成します。mysql> create table DemoTable1432 -> ( -> StudentId
-
MySQLでビュー(VIEW)を作成する方法|CREATE VIEWの基本構文と実行例を解説
MySQLのビュー(VIEW)とは?ビュー(VIEW)とは、SQLクエリの結果セットをもとに定義される「仮想テーブル」のことです。実際のデータを物理的に保存するわけではなく、元のテーブルへの参照情報のみを保持します。そのため、複雑なクエリをシンプルな名前で呼び出せるようにしたり、ユーザーに見せたい列や行だけを限定して提供したりする際に非常に便利です。MySQLでビューを作成するには、CREATE VIEW文を使用します。ビュー作成の基本構文ビューを作成するための基本構文は以下の通りです。create view yourViewName as select * from yourTableNam