본문 바로가기

Study/SQL

[MySQL] COUNT(1), COUNT(*), COUNT(col)의 차이

728x90
반응형

 

SELECT 
       COUNT(1)                                                AS CNT_1
     , COUNT(*)                                                AS CNT_ASTERISK
     , COUNT(SEQ)                                              AS CNT_NULL
     , COUNT(CL_UNI_CD)                                        AS CNT_DATA
     , COUNT(DISTINCT CL_UNI_CD)                               AS CNT_DISTINCT
FROM COM_CD;

[출력 결과]

출력결과

1. COUNT(1), COUNT(*)의 차이

count(1)과 count(*)은 테이블 전체의 행의 개수를 확인하기 위해서 사용

결론적으로는 큰 차이는 없다. 아래 데이터 검증 결과에서 알 수 있듯이, count(*)은 테이블의 모든 행을 세고,
count(1)은 결과 행을 세는데 사용되는 상수 1 count한다.
COUNT(*), COUNT(1) 둘 다 행의 NULL 값이 있더라도 행의 전체 개수를 반환함.

count(1)과 count(*) 출력 결과

 

2. COUNT(col), COUNT(DISTINCT col)

  • count(col)의 경우 null 값을 제외한 rows를 확인하기 위해서 사용함.
    만약 해당 컬럼이 모두 null인 경우 0의 값을 return 함.
  • count(DISTINCT col)의 경우 중복값을 제외한 unique한 개수를 알기 위해서 사용함

count(col), count(distinct col)의 차이

 

728x90
반응형

'Study > SQL' 카테고리의 다른 글

[PostgreSQL] Permission denied Error  (0) 2023.07.13
[MySQL] JOIN조건과 WHERE조건의 차이  (0) 2023.06.23
[MySQL] GROUP BY 와 DISTINCT의 차이  (0) 2023.06.22
[SQL] 2장 인덱스 기본  (0) 2023.06.05
[SQL] 1장 SQL 처리 과정과 I/O  (1) 2023.06.02