본문 바로가기

[오라클 레퍼런스 함수] COUNT - 쿼리 결과 건수

by ㅇㅍㅍ 2023. 8. 3.
[오라클 레퍼런스 함수] COUNT - 쿼리 결과 건수
728x90

COUNT

 

구문

COUNT({ * | [ DISTINCT | ALL ] expr }) [ OVER (analytic_clause) ]

 

참고:

구문, 의미, 그리고 제한 사항에 대한 정보는 Analytic Functions에 대한 내용을 참조하세요.

 

목적

COUNT 함수는 쿼리에 의해 반환된 행의 수를 반환합니다. 이 함수는 집계(aggregated) 또는 분석(analytic) 함수로 사용할 수 있습니다.

만약 DISTINCT를 지정하면, analytic_clausequery_partition_clause만 지정할 수 있습니다. order_by_clausewindowing_clause는 허용되지 않습니다.

expr을 지정하면, COUNTexpr이 null이 아닌 행의 수를 반환합니다. 모든 행 또는 expr의 고유한 값을 기준으로 계산할 수 있습니다.

별표(*)를 지정하면, 이 함수는 중복과 null을 포함한 모든 행을 반환합니다. COUNT는 결코 null을 반환하지 않습니다.

 

참고: 대량의 데이터에서 COUNT (DISTINCT expr) 연산을 수행하기 전에 정확한 결과보다 빠르게 근사 결과를 얻기 위해 다음 중 하나의 방법을 사용하는 것을 고려하세요:

COUNT (DISTINCT expr) 함수를 사용하기 전에 APPROX_FOR_COUNT_DISTINCT 초기화 매개변수를 true로 설정하세요. 이 매개변수에 대한 자세한 정보는 Oracle Database Reference를 참조하세요.

COUNT (DISTINCT expr) 함수 대신 APPROX_COUNT_DISTINCT 함수를 사용하세요. APPROX_COUNT_DISTINCT를 참조하세요.

 

참고:

 

집계 예제

다음 예제들은 COUNT를 집계 함수로 사용하는 예시입니다:

SELECT COUNT(*) "Total"
  FROM employees;

     Total
----------
       107

SELECT COUNT(*) "Allstars"
  FROM employees
  WHERE commission_pct > 0;

 Allstars
---------
       35

SELECT COUNT(commission_pct) "Count"
  FROM employees;

     Count
----------
        35

SELECT COUNT(DISTINCT manager_id) "Managers"
  FROM employees;

  Managers
----------
        18

 

분석 예제

다음 예제는 employees 테이블의 각 직원에 대해, 직원의 급여에서 50 미만부터 150 초과까지의 범위 내에 있는 급여를 가진 직원들의 이동 개수를 계산합니다.

SELECT last_name, salary,
       COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 50 PRECEDING AND
                      150 FOLLOWING) AS mov_count
  FROM employees
  ORDER BY salary, last_name;

LAST_NAME                     SALARY  MOV_COUNT
------------------------- ---------- ----------
Olson                           2100          3
Markle                          2200          2
Philtanker                      2200          2
Gee                             2400          8
Landry                          2400          8
Colmenares                      2500         10
Marlow                          2500         10
Patel                           2500         10
. . .

 


출처: 오라클 레퍼런스

원문 링크: Oracle COUNT 함수 문서

 

반응형

댓글