반응형
오늘 데이터베이스를 확인하던 중에 COUNT(1) 을 쓴 쿼리를 확인하고, COUNT(*) 과 어떤 차이가 있는지 궁금해서 검색해봤다. COUNT() 함수는 집계 함수로 SELECT 쿼리에 대한 행 수를 계산하는 함수이다.
COUNT(*) vs COUNT(1)
결론부터 말하자면 두 개의 명령문에는 차이가 없다.
두 개의 명령문은 모두 동일한 방식으로 작동하며 성능 상에 차이가 없다고 공식 문서에도 명시되어있다.
COUNT(*), COUNT(1) vs COUNT(컬럼명)
COUNT(컬럼) : 해당 컬럼에 NULL 값이 들어간 행은 제외하고 계산함.
COUNT(*) : NULL 값에 상관없이 모두 계산함.
COUNT(컬럼) 명령문은 해당 컬럼에 NULL 값이 있으면 세지 않기 때문에 모든 행을 세는 COUNT(*) 과 결과값부터 차이가 생긴다. 모든 행의 개수를 파악하기 위해서는 COUNT(*) 명령문을 사용해야한다.
또한 내부에 DISTINCT 명령문을 함께 입력해서 COUNT(DISTINCT 컬럼) 으로 조회하면 해당 컬럼의 중복된 값을 제거한 행의 개수를 파악할 수 있다.
반응형
'개발 & 데이터베이스 > DB' 카테고리의 다른 글
오라클 조건문 IF ELSIF, CASE WHEN 사용 방법 (0) | 2023.12.03 |
---|---|
오라클 쿼리문 수행(실행) 시간 측정하는 방법 (SET TIMING ON) (0) | 2023.10.24 |
오라클 PL/SQL RAISE_APPLICATION_ERROR 사용자 예외 처리 (0) | 2023.05.09 |
오라클 여러 행을 하나의 컬럼으로 만들기 (LISTAGG) 오라클 11g R2 중복 제거 (0) | 2023.04.02 |
오라클 ORA-06533: 첨자가 개수를 넘었습니다. (0) | 2023.01.30 |