指定したカラムまたはテーブル全体の行数をカウント(count関数)

count 関数を使うと指定したカラムまたはテーブルに含まれるデータの行数をカウントすることができます。ここでは SQLite における count 関数の使い方について解説します。

(Last modified: )

count関数の使い方

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

count(カラム名)

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

-- --

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

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

count関数の使い方(1)

INSERT 文を使って次のようなデータを格納してあります。

insert into user values(1, 'Honda', 'Tokyo', 'Man');
insert into user values(2, 'Suzuki', 'Nagoya', 'Woman');
insert into user values(3, 'Kojima', 'Kyoto', 'Man');
insert into user values(4, 'Utada', NULL, 'Man');
insert into user values(5, 'Sakai', 'Tokyo', 'Woman');

count関数の使い方(2)

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

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

count関数の使い方(3)

address カラムには NULL が入ったデータは1つあり行数にカウントされないため name カラムのほうが行数が 1 つ多くなっています。

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

select count(*) from user;

count関数の使い方(4)

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

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

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

count関数の使い方(5)

GROUP BY 句を使ってグループ化した場合には、グループ単位で行数をカウントします。( Group By 句については「データをグループ化して合計や平均を計算(GROUP BY句, HAVING句)」を参照してください)。

-- --

count 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。