MySQLでテーブルの列に含まれる一意な値の数をカウントする方法
MySQLでは、COUNT()関数の引数として列名とともにDISTINCTキーワードを使用することで、特定の列に含まれる一意な値(重複を除いた値)の数を簡単にカウントできます。
基本構文
構文は以下の通りです。
SELECT COUNT(DISTINCT Col_name) FROM table_name;
このクエリを実行すると、指定した列から重複する値が取り除かれた状態で、残った値の総数が返されます。データ分析やレポート作成の際に、ユニークな顧客数やカテゴリ数を把握したい場合などに非常に便利です。
実行例
ここでは、次のような「tender」というテーブルを例に説明します。
mysql> Select * from tender; +----------+--------------+--------------+-------+ | clientid | client_Fname | Client_Lname | value | +----------+--------------+--------------+-------+ | 100 | Mohan | Kumar | 60000 | | 101 | Sohan | Singh | 50000 | | 101 | Somil | Rattan | 55000 | | 103 | Gaurav | Kumar | 75000 | | 103 | Rahul | Singh | 63000 | +----------+--------------+--------------+-------+ 5 rows in set (0.00 sec)
このテーブルには5件のレコードが登録されていますが、clientid列には同じ値が重複して存在していることがわかります。
clientid列の一意な値をカウントする
「clientid」列に含まれる一意な値の総数をカウントしたい場合は、以下のクエリを使用します。
mysql> Select COUNT(DISTINCT Clientid) from tender; +--------------------------+ | COUNT(DISTINCT Clientid) | +--------------------------+ | 3 | +--------------------------+ 1 row in set (0.00 sec)
結果は「3」となり、5件のレコードの中に実際には3つの異なるクライアントID(100、101、103)しか存在しないことが確認できます。
Client_Lname列の一意な値をカウントする
同様に、「Client_Lname」(姓)列の一意な値の総数をカウントしたい場合は、以下のクエリを実行します。
mysql> Select COUNT(DISTINCT Client_Lname) from tender; +------------------------------+ | COUNT(DISTINCT Client_Lname) | +------------------------------+ | 3 | +------------------------------+ 1 row in set (0.00 sec)
こちらも結果は「3」です。つまり、姓としては「Kumar」「Singh」「Rattan」の3種類が存在することになります。
まとめ
COUNT(DISTINCT 列名)を使うことで、重複する値を除外した上で列内のユニークな値の数を取得できます。単純なCOUNT(列名)との違いを理解しておくと、データの集計作業がより正確かつ効率的になります。
-
MySQLでテーブル列の重複値の数をカウントするクエリの書き方
MySQLでは、GROUP BY句とHAVING句を組み合わせることで、テーブルの特定の列に含まれる重複値の数を簡単にカウントできます。この記事では、実際にサンプルテーブルを作成し、重複しているデータの件数を取得する手順を解説します。 1. サンプルテーブルの作成 まず、以下のCREATE TABLE文を使ってテーブルを作成します。 mysql> create table DemoTable( Data int ); Query OK, 0 rows affected (0.98 sec) 2. テーブルへのレコード挿入 次に、INSERT文を使用してサンプルレコードを挿入
-
MySQLでCASE WHENを使って列内の2つの値を交換・更新する方法
MySQLである列内の2つの値を入れ替え(スワップ)したい場合、CASE WHEN文を使えば一度のUPDATE文で簡単に実現できます。ここでは、サンプルテーブルを作成しながら、実際に値を交換する手順を解説します。 1. サンプルテーブルの作成 まず、テーブルを作成します。 mysql> create table DemoTable1382 -> ( -> StudentName varchar(20) -> ); Query OK, 0 rows affected (0.57 sec) 2. レコードの挿入 INSERTコマンドでいくつかのレ