이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 토토 사이트 추천 생성버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

만들기 젠 토토

이름

CREATE AGGREGATE  --  새 항목을 정의합니다. 젠 토토 함수

시놉시스

집합 생성이름( 기본 유형 =input_data_type,
    SFUNC =sfunc, STYPE =상태_유형[ , 최종 기능 =ffunc]
    [ , INITCOND =초기_조건 ] )

입력

이름

생성할 집계 함수의 이름.

input_data_type

이 집계 함수가 사용되는 입력 데이터 유형 운영합니다. 집계의 경우 ANY로 지정할 수 있습니다. 입력 값을 검사하지 않는 것(예:개수(*)).

sfunc

호출할 상태 전환 함수의 이름 각 입력 데이터 값에 대해. 이는 일반적으로 다음의 함수입니다. 두 개의 인수, 첫 번째 유형은상태_유형그리고 두 번째 유형input_data_type. 또는 해당 항목을 검사하지 않는 집계의 경우 입력 값이 있는 경우 함수는 다음 중 하나의 인수만 사용합니다. 유형상태_유형. 에서 두 경우 모두 함수는 유형의 값을 반환해야 합니다.상태_유형. 이 기능 현재 상태 값과 현재 입력 데이터를 가져옵니다. 항목을 반환하고 다음 상태 값을 반환합니다.

상태_유형

젠 토토의 상태 값에 대한 데이터 유형.

ffunc

다음을 계산하기 위해 호출된 최종 함수의 이름 모든 입력 데이터가 완료된 후 집계 결과 traversed. 함수는 다음의 단일 인수를 취해야 합니다. 유형상태_유형. 는 집계의 출력 데이터 유형은 다음과 같이 정의됩니다. 이 함수의 반환 유형입니다. 만일ffunc이 지정되지 않은 경우 종료 상태 값은 집계 결과로 사용됩니다. 출력 유형은 다음과 같습니다.상태_유형.

초기_조건

상태 값의 초기 설정입니다. 이것은 데이터 유형에 허용되는 형식의 리터럴 상수상태_유형. 그렇지 않은 경우 지정하면 상태 값은 NULL로 시작됩니다.

출력

만들기

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

설명

집합 생성사용자를 허용하거나 확장할 프로그래머포스트그레새로운 집계 함수를 정의하여 기능을 수행합니다. 일부 집계 다음과 같은 기본 유형에 대한 함수분(정수)그리고평균(더블 정밀도)이미 기본 배포판에 제공되어 있습니다. 만약에 새로운 유형을 정의하거나 아직 집계 함수가 필요하지 않습니다. 제공된 다음집합 생성될 수 있습니다 원하는 기능을 제공하는 데 사용됩니다.

집계 함수는 이름과 입력 데이터로 식별됩니다 유형. 두 집계가 작동하는 경우 동일한 이름을 가질 수 있습니다. 다양한 입력 유형. 혼란을 피하기 위해 이름과 입력 데이터 유형이 동일한 일반 함수 집계.

젠 토토 함수는 하나 또는 두 개의 일반 함수로 구성됩니다. 함수: 상태 전환 함수sfunc및 선택적 최종 계산 기능ffunc. 이들은 다음과 같이 사용됩니다. 다음과 같습니다:

sfunc( 내부 상태, 다음 데이터 항목 ) --- 다음 내부 상태ffunc( 내부 상태 ) --- 젠 토토 값

포스트그레임시를 생성합니다 데이터 유형의 변수stype에 집계의 현재 내부 상태를 유지합니다. 각 입력에서 데이터 항목을 계산하기 위해 상태 전이 함수가 호출됩니다. 새로운 내부 상태 값. 모든 데이터가 완료된 후 처리되면 최종 함수가 한 번 호출되어 집계의 출력 값입니다. 최종 함수가 없으면 종료 상태 값은 그대로 반환됩니다.

집계 함수는 다음과 같은 초기 조건을 제공할 수 있습니다. 는 내부 상태값의 초기값이다. 이것은 유형의 필드로 데이터베이스에 지정되고 저장됩니다.텍스트, 그러나 유효한 외부여야 합니다. 상태 값 데이터 유형의 상수 표현. 그렇다면 제공되지 않으면 상태 값이 NULL로 시작됩니다.

상태 전환 기능이 "엄격"으로 선언된 경우 pg_proc이면 NULL 입력으로 호출할 수 없습니다. 그러한 전환 함수, 집계 실행은 다음과 같이 동작합니다. NULL 입력 값은 무시됩니다(함수는 호출되지 않으며 이전 상태 값이 유지됩니다.) 초기 상태 값이 NULL인 경우 NULL이 아닌 첫 번째 입력 값이 상태를 대체합니다. 값으로 전환 함수가 호출됩니다. NULL이 아닌 두 번째 입력 값입니다. 이는 구현에 편리합니다. 다음과 같이 집계됩니다.최대. 참고하세요 동작은 다음 경우에만 사용할 수 있습니다.상태_유형다음과 같습니다input_data_type. 이러한 유형이 있을 때 다르면 NULL이 아닌 초기 조건을 제공하거나 엄격하지 않은 전환 함수.

상태 전환 기능이 엄격하지 않으면 각 입력 값에서 무조건 호출되며 다음을 처리해야 합니다. NULL 입력 및 자체에 대한 NULL 전환 값. 이를 통해 집계 작성자는 집계에 대한 모든 권한을 갖습니다. NULL 처리.

마지막 함수가 "엄격"으로 선언되면, 종료 상태 값이 NULL일 때 호출됩니다. 대신 NULL 결과가 자동으로 출력됩니다. (물론 이것은 단지 엄격한 함수의 정상적인 동작.) 어쨌든 최종 함수에는 NULL을 반환하는 옵션이 있습니다. 예를 들어, 최종 함수평균다음 경우 NULL을 반환합니다. 입력 튜플이 없는 것을 확인했습니다.

참고

사용젠 토토 삭제젠 토토 삭제 기능.

매개변수집합 생성그림의 순서뿐만 아니라 어떤 순서로도 쓸 수 있습니다. 위.

사용법

다음의 집계 함수에 관한 장을 참조하세요.PostgreSQL 프로그래머 가이드완료용 사용 예입니다.

호환성

SQL92

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