SQLite | SQLite関数 | 列またはテーブル全体の行数を求める(count関数)
count関数を使うと、指定した列またはテーブルの行数を求められます。ここでは使い方を説明します。
count関数の使い方
構文は次のとおりです。
count(列名)
引数に列名またはアスタリスク(*)を指定します。列名を指定するとNULL以外の行数を返し、*を指定するとテーブルのすべての行数を返します。GROUP BY句を使用する場合は、グループごとの行数を返します。
–
例で使用するテーブルを作成します。
create table user (id integer, name text, address text, gender text);
sqlite> create table user (id integer, name text, address text, gender text);
sqlite>
データを追加します。
insert into user values (1, 'devkuma', 'Seoul', 'Man');
insert into user values (2, 'kimkc', 'Busan', 'Woman');
insert into user values (3, 'arikuma', 'Suwan', 'Man');
insert into user values (4, 'happykuma', NULL, 'Man');
insert into user values (5, 'raccoon', 'Seoul', 'Woman');
sqlite> insert into user values (1, 'devkuma', 'Seoul', 'Man');
sqlite> insert into user values (2, 'kimkc', 'Busan', 'Woman');
sqlite> insert into user values (3, 'arikuma', 'Suwan', 'Man');
sqlite> insert into user values (4, 'happykuma', NULL, 'Man');
sqlite> insert into user values (5, 'raccoon', 'Seoul', 'Woman');
sqlite>
name列とaddress列の行数を求めます。
select count(name), count(address) from user;
sqlite> select count(name), count(address) from user;
5|4
sqlite>
address列にはNULLの行が1つあるため、name列よりカウントが1少なくなります。
テーブル全体の行数を求めます。
select count(*) from user;
sqlite> select count(*) from user;
5
sqlite>
すべての列値がNULLの行があっても、他の行と同様に数えられます。
最後に、gender列でグループ化して行数を求めます。
select gender, count(*) from user group by gender;
sqlite> select gender, count(*) from user group by gender;
Man|3
Woman|2
sqlite>
GROUP BY句を使用すると、グループごとに行数が計算されます。詳細はデータをグループ化して合計と平均を計算する(GROUP BY句、HAVING句)を参照してください。