MySQLでENUM型カラムの値ごとにレコード数をカウントする方法
MySQLでは、GROUP BY句と集計関数COUNT()を組み合わせることで、ENUM型カラムの値ごとにレコード数を簡単に集計できます。ここでは、ENUM型を含むテーブルでアイテム数をカウントする手順を、具体例とともに解説します。
1. サンプルテーブルの作成
まず、ENUM型のカラムを持つテーブルを作成します。以下の例では、サイズ(S・M・L・XL)を格納するENUM型カラム「Size」を定義しています。
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Size ENUM('S','M','L','XL')
);
Query OK, 0 rows affected (0.69 sec)2. テストデータの挿入
次に、INSERT文を使ってサンプルデータを挿入します。
mysql> insert into DemoTable(Size) values('L');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(Size) values('S');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(Size) values('S');
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable(Size) values('M');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(Size) values('XL');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(Size) values('M');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(Size) values('M');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(Size) values('M');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(Size) values('XL');
Query OK, 1 row affected (0.08 sec)3. 挿入したデータの確認
SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認しましょう。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+----+------+ | Id | Size | +----+------+ | 1 | L | | 2 | S | | 3 | S | | 4 | M | | 5 | XL | | 6 | M | | 7 | M | | 8 | M | | 9 | XL | +----+------+ 9 rows in set (0.00 sec)
4. ENUM型カラムの値ごとに件数をカウントするクエリ
それが本題のクエリです。GROUP BY句でSizeカラムをグループ化し、COUNT()関数で各グループの件数を集計します。
mysql> SELECT tbl.Size, COUNT(1) AS Frequency from DemoTable tbl group by tbl.Size;
実行すると、以下のようにENUM型の値ごとの出現回数(頻度)が取得できます。
+------+-----------+ | Size | Frequency | +------+-----------+ | L | 1 | | S | 2 | | M | 4 | | XL | 2 | +------+-----------+ 4 rows in set (0.00 sec)
まとめ
このように、ENUM型カラムを含むテーブルでも、GROUP BYとCOUNT()を組み合わせれば値ごとのレコード数を簡単に集計できます。アンケート結果の集計や在庫管理など、カテゴリ別の件数を知りたい場面で非常に便利なテクニックなので、ぜひ活用してみてください。
-
JavaでMySQLテーブルのカラム数を取得・カウントする方法
MySQLテーブルのカラム(列)数をJavaで取得するには、ResultSetMetaDataインターフェースを使用します。ResultSetMetaDataを活用すれば、カラムの総数だけでなく、各カラムの名前やデータ型といった詳細情報も簡単に取得できます。前提:サンプルテーブルの作成まずは動作確認用のテーブルを作成しましょう。以下のSQLでは、3つのカラムを持つ「DemoTable」を作成しています。mysql> create table DemoTable -> ( -> St
-
【Spring Boot】HibernateでMySQLのテーブルを自動作成する方法
Spring BootとHibernateを組み合わせると、エンティティクラスから自動的にMySQLのテーブルを作成できます。本記事では、application.propertiesの設定だけでテーブルを自動生成する手順を、実際のコード例とともにわかりやすく解説します。1. application.propertiesの設定テーブルを自動作成するには、まずapplication.propertiesに以下の1行を追加します。spring.jpa.hibernate.ddl-auto=updateddl-auto=updateを指定すると、アプリケーションの起動時にHibernateがエンティテ