MySQL,COUNT()関数でデータの件数を取得する

スポンサーリンク

鍛錬 937

MySQL,COUNT()関数でデータの件数を取得する

COUNT()関数を使用すると、指定したカラムにおけるデータの件数(行数)を取得することができます。
 
使用方法は、以下に示す通りです。

(1) SELECT 文を使用してデータの件数を表示する場合(カラム名を指定)

SELECT COUNT(カラム名) FROM テーブル名;

上記のようにカラム名を指定した場合、NULL は件数に含まれません。
 
(2) SELECT 文を使用してデータの件数を表示する場合(アスタリスクを指定)

SELECT COUNT(*) FROM テーブル名;

上記のようにカラム名の代わりに「*」(アスタリスク) を使用した場合は、NULL が含まれるか否かに関係無く、取得した行数を返します。

スポンサーリンク

実行結果

今回は、テーブル「number」のカラム「num_1」について、データの件数を取得しています。

テーブル「number」

id num_1 num_2
1 100 3
2 -100 6
3 1.23 9
4 1.23 9
5 0 0
6 NULL NULL

(1) カラム名を指定する場合

以下は、「count(num_1)」として実行しています。

mysql> 
mysql> select * from number;
+------+-------+-------+
| id   | num_1 | num_2 |
+------+-------+-------+
|    1 |   100 |     3 |
|    2 |  -100 |     6 |
|    3 |  1.23 |     9 |
|    4 |  1.23 |     9 |
|    5 |     0 |     0 |
|    6 |  NULL |  NULL |
+------+-------+-------+
6 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> select count(num_1) from number;
+--------------+
| count(num_1) |
+--------------+
|            5 |
+--------------+
1 row in set (0.00 sec)

 
上記に示した通り、カラム「num_1」におけるデータの件数は 5 件と表示され、NULL の行がカウントされていないことが分かります。

(2)「*」(アスタリスク)を使用する場合

以下は、「count(*)」として実行しています。

mysql> 
mysql> select * from number;
+------+-------+-------+
| id   | num_1 | num_2 |
+------+-------+-------+
|    1 |   100 |     3 |
|    2 |  -100 |     6 |
|    3 |  1.23 |     9 |
|    4 |  1.23 |     9 |
|    5 |     0 |     0 |
|    6 |  NULL |  NULL |
+------+-------+-------+
6 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> select count(*) from number;
+----------+
| count(*) |
+----------+
|        6 |
+----------+
1 row in set (0.00 sec)

 
上記に示した通り、データの件数は 6 件と表示され、NULL の行もカウントされていることが分かります。

タイトルとURLをコピーしました