SQLite | SQLite 함수 | 컬럼 또는 전체 테이블의 행수 구하기 (count 함수)

count 함수를 사용하면 지정된 컬럼 또는 테이블에 저장된 데이터의 행수를 계산 할 수 있다. 여기서 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 문을 사용하여 다음과 같이 데이터 추가한다.

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> 

그러면 count 함수를 사용하여 name 컬럼과 address 컬럼의 행수를 구해 본다.

select count(name), count(address) from user;
sqlite> select count(name), count(address) from user;
5|4
sqlite> 

address 컬럼에는 NULL이 들어간 데이터는 하나가 행 수에 포함되지 않기에 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 절에 대해서는 데이터를 그룹화하여 합계와 평균을 계산 (GROUP BY 절, HAVING 절)를 참조한다.




최종 수정 : 2019-11-13