MySQLでユーザータイプごとのユーザー数を取得する方法
MySQLでは、GROUP BY句とCOUNT()関数を組み合わせることで、ユーザータイプ(種別)ごとのユーザー数を簡単に集計できます。この記事では、ENUM型のカラムを持つサンプルテーブルを使い、実際の手順を順番に解説します。
1. サンプルテーブルを作成する
まず、ユーザー名とユーザータイプを格納するテーブルを作成します。UserTypeカラムにはENUM型を使用し、「New User(新規ユーザー)」と「Registered User(登録済みユーザー)」の2つの値のみを許可します。
mysql> create table DemoTable
-> (
-> UserName varchar(20),
-> UserType ENUM('New User','Registered User')
-> );
Query OK, 0 rows affected (0.60 sec)
2. レコードを挿入する
次に、INSERTコマンドを使ってテーブルに複数のレコードを追加します。
mysql> insert into DemoTable values('Chris','New User');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('David','New User');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('Mike','Registered User');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('Sam','New User');
Query OK, 1 row affected (0.10 sec)3. テーブルの内容を確認する
SELECT文ですべてのレコードを表示し、データが正しく登録されているか確認しましょう。
mysql> select * from DemoTable;
このクエリを実行すると、次のような出力が得られます。
+----------+-----------------+
| UserName | UserType |
+----------+-----------------+
| Chris | New User |
| David | New User |
| Mike | Registered User |
| Sam | New User |
+----------+-----------------+
4 rows in set (0.00 sec)
4. ユーザータイプごとの件数を取得する
ここが本題です。ユーザータイプごとのユーザー数を取得するには、UserTypeでグループ化してカウントします。
mysql> select count(*),UserType from DemoTable group by UserType;
実行結果は以下のとおりです。
+----------+-----------------+
| count(*) | UserType |
+----------+-----------------+
| 3 | New User |
| 1 | Registered User |
+----------+-----------------+
2 rows in set (0.00 sec)
解説:なぜGROUP BYが必要なのか
COUNT(*)だけを使うとテーブル全体の行数しか取得できません。GROUP BY UserTypeを指定することで、同じUserTypeの値を持つ行がそれぞれのグループにまとめられ、グループごとの件数を求められます。
さらに見やすくしたい場合は、AS句を使って列に別名を付けることもできます。
mysql> select UserType, count(*) AS TotalUsers
from DemoTable group by UserType;
このように、GROUP BYとCOUNT()の組み合わせは、カテゴリ別の集計を行う際の基本となるテクニックです。ENUM型以外の文字列型カラムでも同様に使用できるので、さまざまな場面で応用できます。
-
【MySQL入門】別のユーザーとしてログインする方法をわかりやすく解説
MySQLで別のユーザーとしてログインしたい場合は、mysql -u ユーザー名 -p コマンドを使用します。この記事では、新しいユーザーの作成から、作成したユーザーでのログイン方法まで、手順を追って詳しく解説します。別のユーザーとしてログインするための基本構文別のユーザーとしてMySQLにログインする際の基本構文は以下の通りです。> mysql -u yourUsername -pEnter password:コマンドを実行してEnterキーを押すと、パスワードの入力を求められます。ここに該当ユーザーのパスワードを入力すればログインできます。ステップ1:新しいユーザーを作成するまずは、
-
【MySQL】小数点より2桁前(十の位)の数字を取得する方法
MySQLで小数点より2桁前(十の位)に位置する数字を取得したい場合は、div演算子の概念を利用すると簡単に実現できます。divは整数除算を行う演算子で、剰余演算子(%)と組み合わせることで、任意の桁の数字を取り出すことが可能です。 テーブルの作成 まず、動作確認用のサンプルテーブルを作成しましょう。 mysql> create table demo1 −> ( −> value float −> ); Query OK, 0 rows affected (2.20 sec) create table文を使用し、float型のカラム