개발 개념 정리/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 값을 포함한 모든 행이 계산된다. 따라서 OrderDate가 NULL인 행도 포함해서 총 5개의 행을 센다.
SELECT COUNT(*) FROM Orders;
2. COUNT(OrderDate) – NULL을 제외한 값만 셈
- COUNT(컬럼)은 지정한 컬럼에서 NULL이 아닌 값만 센다. OrderDate가 NULL인 두 개의 행은 제외하고, 나머지 3개의 OrderDate 값만 센다
SELECT COUNT(OrderDate) FROM Orders;
차이점 요약
• COUNT(*): 테이블의 모든 행을 센다. NULL 값을 포함한 모든 행이 계산된다
• COUNT(컬럼): 지정한 컬럼에서 NULL 값을 제외하고 계산한다. NULL이 아닌 값만 센다.