count関数

広告

count関数は行数を取得するために使用します。書式は次の通りです。

count(カラム名)

引数にはカラム名または「*」を指定します。カラム名を指定した場合にはカラムに含まれる値の中でNULLのカラムを除いた行数を返します。「*」を指定した場合には行数を返します。GROUP BY句が使われている場合はグループ毎に行われます。

具体的には次のように使用します。

create table customer(id integer, old integer, address text);

select count(address) from customer;
select count(*) from customer;

最初のSELECT文では「address」カラムに含まれるデータの中で値がNULLではない行数を取得します。2番目のSELECT文では「customer」テーブルに含まれる行数を取得します。

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

create table user(id integer, name text, address text, gender text);

p1-1

作成したテーブルには次のようなデータが格納してあります。

p1-2

それではcount関数を使って「name」カラムと「address」カラムの行数を取得してみます。

select count(name), count(address) from user;

p1-3

nullは行数にカウントされないため「address」カラムの方が「name」カラムよりも行数が1つ少なくなっています。

続いてテーブル全体の行数を取得します。

select count(*) from user;

p1-4

テーブルに含まれるデータの行数を取得しました。もし全てのカラムの値がNULLであるデータがあっても他のデータと同じく行数にカウントされます。

最後に「gender」カラム毎にグループ化して行数を取得してみます。

select gender, count(*) from user group by gender;

p1-5

GROUP BY句を使ってグループ化した場合には、グループ単位で行数をカウントします。

( Written by Tatsuo Ikura )