개발 개념 정리/SQL

[SQL] COUNT(*) vs COUNT(컬럼) 차이

개발하는 몽키 2025. 3. 17. 20:04

SQL에서 COUNT 함수는 특정 컬럼이나 테이블의 행 수를 셀 때 사용되지만, 사용 방식에 따라 결과가 달라질 수 있다.

내가 헷갈렸던 부분은 COUNT(*) 와 COUNT(컬럼)의 차이를 이해하는 것이였다.

 

예시 테이블 : Orders

OrderID CustomerID OrderDate
1 101 2025-03-01
2 102 NULL
3 103 2025-03-02
4 104 NULL
5 105 2025-03-03

 

 

1. COUNT(*) - 모든 행의 개수를 셈

  • COUNT(*) 는 테이블의 모든 행을 센다. 이때 NULL 값을 포함한 모든 행이 계산된다. 따라서 OrderDateNULL인 행도 포함해서 총 5개의 행을 센다.
SELECT COUNT(*) FROM Orders;

 

2. COUNT(OrderDate) – NULL을 제외한 값만 셈

  • COUNT(컬럼)은 지정한 컬럼에서 NULL이 아닌 값만 센다. OrderDateNULL인 두 개의 행은 제외하고, 나머지 3개OrderDate 값만 센다
SELECT COUNT(OrderDate) FROM Orders;

 

 

차이점 요약

COUNT(*): 테이블의 모든 행을 센다. NULL 값을 포함한 모든 행이 계산된다

COUNT(컬럼): 지정한 컬럼에서 NULL 값을 제외하고 계산한다. NULL이 아닌 값만 센다.