Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

COUNT 함수

설명

COUNT 함수는 질의문이 반환하는 결과 행들의 개수를 반환한다. 별표(*)를 지정하면 조건을 만족하는 모든 행(NULL 값을 가지는 행 포함)의 개수를 반환하며, DISTINCT 또는 UNIQUE 키워드를 연산식 앞에 지정하면 중복을 제거한 후 유일한 값을 가지는 행(NULL값을 가지는 행은 포함하지 않음)의 개수만 반환한다. 따라서, 반환되는 값은 항상 정수이며, NULL은 반환되지 않는다.

연산식 expression은 수치형 또는 문자열 타입은 물론, 컬렉션 타입 칼럼과 오브젝트 도메인(사용자 정의 클래스 또는 멀티미디어 클래스)을 가지는 칼럼도 지정될 수 있다.

분석 함수에 대한 예제는 아래의 분석 함수 예제를 참고한다. 분석 함수에 대한 자세한 내용은 개요를 참고한다.

구문

COUNT ( * | [ { DISTINCT | DISTINCTROW } | UNIQUE | ALL ] expression )

  • expression : 임의의 연산식이다.
  • ALL : 주어진 expression의 모든 행의 개수를 구하기 위해 사용되며, 기본값이다.
  • DISTINCT 또는 UNIQUE : 중복이 제거된 유일한 값을 가지는 행의 개수를 구하기 위해 사용된다.
집계 함수 예제

다음은 demodb에서 역대 올림픽 중에서 마스코트가 존재했었던 올림픽의 수를 반환하는 예제이다.

SELECT COUNT(*)

FROM olympic

WHERE mascot IS NOT NULL; 

     count(*)

=============

            9

분석 함수 예제

다음은 demodb에서 nation_code가 'AUT'인 국가의 참가 선수의 종목(event)별 인원 수를 종목이 바뀔 때마다 누적하여 출력한 예제이다. 가장 마지막 줄에는 모든 인원 수가 출력된다.

SELECT nation_code, event,name, COUNT(*) OVER (ORDER BY event) co

FROM athlete WHERE nation_code='AUT';

   nation_code           event                 name                           co

===============================================================================

  'AUT'                 'Athletics'           'Kiesl Theresia'                2

  'AUT'                 'Athletics'           'Graf Stephanie'                2

  'AUT'                 'Equestrian'          'Boor Boris'                    6

  'AUT'                 'Equestrian'          'Fruhmann Thomas'               6

  'AUT'                 'Equestrian'          'Munzner Joerg'                 6

  'AUT'                 'Equestrian'          'Simon Hugo'                    6

  'AUT'                 'Judo'                'Heill Claudia'                 9

  'AUT'                 'Judo'                'Seisenbacher Peter'            9

  'AUT'                 'Judo'                'Hartl Roswitha'                9

  'AUT'                 'Rowing'              'Jonke Arnold'                 11

  'AUT'                 'Rowing'              'Zerbst Christoph'             11

  'AUT'                 'Sailing'             'Hagara Roman'                 15

  'AUT'                 'Sailing'             'Steinacher Hans Peter'        15

  'AUT'                 'Sailing'             'Sieber Christoph'             15

  'AUT'                 'Sailing'             'Geritzer Andreas'             15

  'AUT'                 'Shooting'            'Waibel Wolfram Jr.'           17

  'AUT'                 'Shooting'            'Planer Christian'             17

  'AUT'                 'Swimming'            'Rogan Markus'                 18