MySQLで列内の各一意な値の出現回数(カウント)を取得する方法
MySQLでは、GROUP BY句とCOUNT関数を組み合わせることで、列内の各一意な値が何回出現しているかを簡単に集計できます。ここでは、実際の例を使って手順を詳しく見ていきましょう。
1. テーブルの作成
まず、サンプル用のテーブルを作成します。テーブルの作成にはCREATE TABLEコマンドを使用します。
mysql> create table DistinctDemo1 -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.43 sec)
2. レコードの挿入
次に、INSERT文を使ってテストデータを挿入します。集計結果がわかりやすいよう、あえて「John」という名前を複数回登録しています。
mysql> insert into DistinctDemo1 values(1,'John'); Query OK, 1 row affected (0.34 sec) mysql> insert into DistinctDemo1 values(2,'John'); Query OK, 1 row affected (0.20 sec) mysql> insert into DistinctDemo1 values(3,'John'); Query OK, 1 row affected (0.09 sec) mysql> insert into DistinctDemo1 values(4,'Carol'); Query OK, 1 row affected (0.17 sec) mysql> insert into DistinctDemo1 values(5,'David'); Query OK, 1 row affected (0.12 sec)
3. 登録されたレコードを確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DistinctDemo1;
実行すると、以下のように登録済みの全レコードが表示されます。
+------+-------+ | id | name | +------+-------+ | 1 | John | | 2 | John | | 3 | John | | 4 | Carol | | 5 | David | +------+-------+ 5 rows in set (0.00 sec)
4. GROUP BYとCOUNTで出現回数を集計する
各名前の出現回数を取得するには、対象の列でグループ化し、COUNT関数で行数を数えます。基本構文は以下のとおりです。
mysql> SELECT name,COUNT(1) as OccurenceValue FROM DistinctDemo1 GROUP BY name ORDER BY OccurenceValue;
実行結果は以下のとおりです。
+-------+----------------+ | name | OccurenceValue | +-------+----------------+ | Carol | 1 | | David | 1 | | John | 3 | +-------+----------------+ 3 rows in set (0.04 sec)
クエリのポイント解説
- GROUP BY name:name列の同じ値を持つ行を1つのグループにまとめます。
- COUNT(1):各グループ内の行数をカウントします。
COUNT(*)でも同様の結果が得られます。 - as OccurenceValue:
ASキーワードでカウント結果に別名を付け、読みやすい出力にしています。 - ORDER BY OccurenceValue:出現回数の昇順で結果を並べ替えます。降順にしたい場合は
ORDER BY OccurenceValue DESCと指定してください。
このように、GROUP BYとCOUNTを組み合わせるだけで、列内の一意な値ごとの件数を簡単に集計できます。アンケート集計やログ解析など、データの分布を把握したい場面で非常に役立つテクニックなので、ぜひ活用してみてください。
-
MySQLで列ごとの同じ値の出現回数をカウントする方法(GROUP BYとCOUNT(*)の使い方)
MySQLである列に含まれる同じ値がそれぞれ何回出現しているかを調べたい場合、COUNT(*)とGROUP BY句を組み合わせることで簡単に集計できます。この記事では、実際のサンプルを使いながら手順を解説します。 1. サンプルテーブルを作成する まずは動作確認用のテーブルを作成しましょう。ここでは「Id」と「Name」の2つのカラムを持つテーブルを定義します。 mysql> create table DemoTable1818 ( Id int, Name varchar(20) ); Query OK, 0 rows affected (0.00 s
-
MySQLで特定の値を持つ列の数をカウントする方法【SUM関数の活用】
はじめにMySQLでは、SUM関数と加算演算子(+)・論理演算子(AND)を組み合わせることで、テーブル内の複数の列に含まれる特定の値(たとえば「1」)の合計個数や、すべての列がその値を持つ行数を簡単に集計できます。本記事では、サンプルテーブルを作成しながら、具体的なSQLクエリの書き方と実行結果をわかりやすく解説します。基本構文特定の値を持つ列の数をカウントする場合、以下のような構文を使用します。selectsum(yourColumnName1 + yourColumnName2 + yourColumnName3 ... N) as `anyAliasName1`,sum(yourCol