[Oracle] 오라클 COUNT 함수 사용법 (중복제거)
- 데이터베이스/오라클
- 2020. 4. 17.
COUNT( ) 함수는 오라클에서 아주 기본적인 함수이며 자주 사용한다. 그러나 전체 건수를 반환하는 COUNT(*) 외에 다양한 사용방법이 있으니 아래를 참고하여 활용하면 좋을 것 같다.
COUNT( ) 함수 사용법
SELECT COUNT(*) cnt
, COUNT(mgr) cnt2
, COUNT(DISTINCT job) cnt3
FROM emp
COUNT(*)
- 조회된 전체행 건수를 반환한다
COUNT(컬럼)
- 컬럼의 값이 NULL인 행은 카운트 하지 않는다
COUNT(DISTINCT 컬럼)
- 컬럼 값을 중복제거하고, 컬럼의 값 건수를 반환한다
GROUP BY ~ HAVING
- COUNT( ) 함수는 집계 함수이기 때문에 GROUP BY 절과 함께 사용할 수 있다
- WHERE 절에는 COUNT( ) 함수를 사용할 수 없지만, HAVING 절에는 조건으로 사용 가능하다.
함수사용
- COUNT( ) 함수 내부에 DECODE 함수나 CASE문 등을 사용하여 건수를 집계 할 수 있다.
COUNT(*) vs COUNT(1) 성능비교
COUNT(*)은 모든 컬럼 지칭하는 아스타리스크(*)가 있어 성능에 영향을 미칠 것으로 생각되어 COUNT(1)로 사용하는 경우가 있다. 그러나 위 두 가지의 경우 성능은 차이가 없기 때문에 일반적인 COUNT(*)을 사용하는 것을 권장한다.