SQL - COUNT(*), COUNT(column)의 차이

SQL


COUNT()

내가 생각하던 COUNT함수는 ROW의 수만 세는 줄 알았는데 생각보다 다양하게 사용할 수 있는 방법이 많았다.
COUNT(*)과 COUNT(column)을 사용했을 때, 차이점을 새롭게 알게되어서 정리하려고 한다.

COUNT(*)
: 테이블의 모든 ROW의 수를 센다.

COUNT(column)
: 해당 COLUMN이 NOT NULL인 ROW의 수만 센다.

COUNT(DISTINCT column)
: 해당 COLUMN의 중복을 제거하고 NOT NULL인 ROW의 수를 센다.

COUNT(DISTINCT CASE WHEN condition THEN result)
: 조건에 해당하는 COLUMN의 NOT NULL인 ROW의 수를 센다.