COUNT関数

広告

COUNT関数は引数に指定したカラム名のカラムの行数を返します。書式は次の通りです。

COUNT(col_name)

引数に指定したカラムに格納された値の中で、値がNULLではないデータの行数を取得します。特定のカラムではなく行数を取得するには「COUNT(*)」と記述して下さい。この場合はNULLかどうかは関係無く行数を取得します。

例えば次のように使用します。

mysql> SELECT COUNT(*) FROM goods;

上記では「goods」テーブルの行数を取得します。

mysql> SELECT COUNT(name) FROM goods GROUP BY name;

上記では「name」カラムでグループ化を行い、グループ毎の「name」カラムの行数(NULL以外)を取得します。

サンプル

では実際に試してみます。次のようなテーブルを用意します。

mysql> create table accesslog(searchengine varchar(20), d date);

p6-1

テーブルには次のようにデータを入力しておきます。

p6-2

まずテーブルの行数を取得します。

mysql> select count(*) from accesslog;

p6-3

今度は「searchengine」カラムの行数を取得します。

mysql> select count(searchengine) from accesslog;

p6-4

先ほど取得した行数と異なるのは、「searchengine」カラムの値がNULLのデータが1つ含まれているためです。

最後に「searchengine」カラムの値でグループ化を行い、「searchengine」カラムの値毎に行数を取得します。

mysql> select searchengine, count(searchengine) from accesslog
    -> group by searchengine;

p6-5

「searchengine」カラムの値がNULLのデータについても行数を取得するには次のように入力します。

mysql> select searchengine, count(*) from accesslog
    -> group by searchengine;

p6-6

( Written by Tatsuo Ikura )