본문 바로가기

DBMS/SQL Server

[SQL Server] COUNT(*) vs COUNT(컬럼)

 

COUNT(*) 과 COUNT(컬럼) 은 NULL을 포함할 때 다른 결과를 반환한다.

COUNT(*) 은 NULL을 포함한 개수를 반환하지만 COUNT(컬럼)은 NULL을 제외한 개수를 반환한다.

 

 -- 테스트용 테이블 생성

 CREATE TABLE COUNT_TEST (

    COL1 INT IDENTITY(1,1)

  , COL2 INT

 )

 GO

 

 -- 데이터 삽입

 INSERT INTO COUNT_TEST(COL2) VALUES (1)

 INSERT INTO COUNT_TEST(COL2) VALUES (NULL)

 INSERT INTO COUNT_TEST(COL2) VALUES (7)

 INSERT INTO COUNT_TEST(COL2) VALUES (NULL)

 INSERT INTO COUNT_TEST(COL2) VALUES (15)

 GO

 

 -- 두 쿼리 결과 비교

 SELECT COUNT(*) FROM COUNT_TEST

 SELECT COUNT(COL2) FROM COUNT_TEST

 GO

 

 

 

NULL을 포함해야 할 경우와 포함하지 않아야 할 경우 적절하게 사용하도록 하자.