이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 토토 커뮤니티 생성버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

집합 생성

이름

CREATE AGGREGATE — 새로운 토토 핫 함수 정의
집합 생성이름[ 그대로 ]
    ( 기본 유형 =데이터_유형[ , SFUNC1 =sfunc1, STYPE1 =sfunc1_return_type]
    [ , SFUNC2 =sfunc2, STYPE2 =sfunc2_return_type]
    [ , 최종 기능 =ffunc]
    [ , INITCOND1 =initial_condition1]
    [ , INITCOND2 =initial_condition2 ]
    )

입력

이름

생성할 집계 함수의 이름.

데이터_유형

이 토토 핫에 사용되는 기본 데이터 유형 기능이 작동됩니다.

sfunc1

상태 전환 함수는 매번 호출됩니다. 소스 열의 NULL이 아닌 필드입니다. 변수가 필요합니다 유형sfunc1_return_type첫 번째 인수로 해당 필드를 두 번째 인수로 논쟁.

sfunc1_return_type

첫 번째 전환 함수의 반환 유형입니다.

sfunc2

매번마다 호출되는 상태 전환 함수 소스 열의 NULL이 아닌 필드입니다. 변수가 필요합니다 유형sfunc2_return_type유일한 인수로 사용하고 동일한 변수를 반환합니다. 유형.

sfunc2_return_type

두 번째 전환 함수의 반환 유형입니다.

ffunc

모든 입력을 순회한 후 호출되는 최종 함수 필드. 이 함수는 두 가지 유형의 인수를 취해야 합니다.sfunc1_return_type그리고sfunc2_return_type.

initial_condition1

첫 번째 전환 함수의 초기 값 논쟁.

initial_condition2

두 번째 전환 함수의 초기 값 논쟁.

출력

생성

명령이 완료되면 메시지가 반환됨 성공적으로.

설명

집합 생성사용자를 허용하거나 확장할 프로그래머포스트그레스기능을 사용하여 새로운 집계 함수를 정의합니다. 일부 집계 다음과 같은 기본 유형에 대한 함수분(int4)그리고평균(float8)이미 베이스에 제공되어 있습니다 유통. 새로운 유형을 정의하거나 토토 핫가 필요한 경우 기능은 아직 제공되지 않았습니다.만들기 토토 핫원하는 기능을 제공하는 데 사용할 수 있습니다.

토토 핫 함수에는 최대 3개의 함수가 필요할 수 있습니다. 상태 전환 함수,sfunc1그리고sfunc2:

sfunc1( 내부-상태1, 다음-데이터_항목) --- 다음-내부-상태1sfunc2( 내부 상태2 ) --- 다음 내부 상태2
그리고 최종 계산 함수,ffunc:
ffunc(내부 상태1, 내부 상태2) --- 토토 핫 값

포스트그레스최대 2개 생성 임시 변수(여기서는 다음과 같이 지칭함)임시1그리고임시2) 다음과 같이 사용되는 중간 결과를 보관합니다. 전환 함수에 대한 인수입니다.

이러한 전환 기능에는 다음이 필요합니다. 속성:

  • 인수sfunc1반드시임시1유형sfunc1_return_type그리고열_값유형데이터_유형. 반환 값 유형이어야 합니다.sfunc1_return_type다음으로 사용됩니다 다음 호출의 첫 번째 인수sfunc1.

  • 인수 및 반환 값sfunc2반드시임시2유형sfunc2_return_type.

  • 최종 계산 함수에 대한 인수는 다음과 같아야 합니다임시1그리고임시2반환 값은 다음과 같아야 합니다.포스트그레기본 유형(아님 반드시데이터_유형어느 BASETYPE에 대해 지정되었습니다).

  • FINALFUNC는 다음과 같은 경우에만 지정되어야 합니다. 상태 전환 함수가 지정됩니다.

집계 함수에는 초기 하나 또는 두 개가 필요할 수도 있습니다. 조건은 각 전환 함수마다 하나씩입니다. 이들은 지정됩니다 유형의 필드로 데이터베이스에 저장됩니다.텍스트.

참고

사용토토 핫 삭제집합을 삭제하려면 기능.

다음을 갖는 집계 함수를 지정할 수 있습니다. 상태와 최종 함수의 다양한 조합. 예를 들어,개수토토 핫에는 SFUNC2가 필요합니다. (증분 함수)이지만 SFUNC1 또는 FINALFUNC는 아닙니다.토토 핫에는 SFUNC1이 필요합니다( 추가 기능) SFUNC2 또는 FINALFUNC 및평균aggregate에는 다음 두 가지가 모두 필요합니다. 위의 상태 함수와 FINALFUNC(나눗셈) 함수)에 대한 답변을 생성합니다. 어쨌든 적어도 하나는 상태 함수를 정의해야 하며 모든 SFUNC2에는 해당 INITCOND2.

사용법

다음의 집계 함수에 관한 장을 참조하세요.PostgreSQL 프로그래머 가이드집합적으로 전체 사용 예를 보려면 함수를 참조하세요.

호환성

SQL92

집합 생성포스트그레언어 확장. 없습니다집합 생성SQL92에서.