집합 생성이름(
기본 유형 =input_data_type,
SFUNC =sfunc,
유형 =state_data_type[ , 최종 기능 =ffunc]
[ , INITCOND =초기_조건 ]
)
집합 생성새로운 것을 정의합니다 집계 함수. 일부 기본적이고 일반적으로 사용되는 집계 기능은 배포판에 포함되어 있습니다. 그들은 문서화되어 있습니다 에서토토 사이트 : 문서 : 8.0 : 집계 함수. 하나라면 새로운 유형을 정의하거나 아직 집계 함수가 필요하지 않습니다. 제공된 다음집합 생성될 수 있습니다 원하는 기능을 제공하는 데 사용됩니다.
스키마 이름이 제공된 경우(예:집합 myschema.myagg 생성 ...) 그런 다음 지정된 스키마에 집계 함수가 생성됩니다. 그렇지 않으면 현재 스키마에서 생성됩니다.
집계 함수는 이름과 입력 데이터로 식별됩니다 유형. 동일한 스키마에 있는 두 집계는 다음과 같은 경우 동일한 이름을 가질 수 있습니다. 그들은 다른 입력 유형에서 작동합니다. 이름 및 입력 데이터 집계 유형은 이름 및 이름과도 구별되어야 합니다. 동일한 함수에 있는 모든 일반 함수의 입력 데이터 유형 스키마.
토토 핫 함수는 하나 또는 두 개의 일반 함수로 구성됩니다. 함수: 상태 전환 함수sfunc및 선택적 최종 계산 기능ffunc. 이들은 다음과 같이 사용됩니다. 다음과 같습니다:
sfunc( 내부 상태, 다음 데이터 항목 ) --- 다음 내부 상태ffunc( 내부 상태 ) --- 토토 핫 값
PostgreSQL을 생성합니다 데이터 유형의 임시 변수stype현재 내부 상태를 유지하기 위해 집계. 각 입력 데이터 항목에서 상태 전이 새로운 내부 상태 값을 계산하기 위해 함수가 호출됩니다. 모든 데이터가 처리된 후 최종 기능은 다음과 같습니다. 집계의 반환 값을 계산하기 위해 한 번 호출됩니다. 만약 거기에 최종 함수가 없으면 종료 상태 값이 반환됩니다. 있는 그대로.
집계 함수는 다음과 같은 초기 조건을 제공할 수 있습니다. 는 내부 상태값의 초기값이다. 이것은 유형의 열로 데이터베이스에 지정 및 저장됩니다.텍스트, 그러나 유효한 외부 주소여야 합니다. 상태 값 데이터 유형의 상수 표현. 그렇다면 제공되지 않으면 상태 값이 null로 시작됩니다.
상태 전환 함수가 선언된 경우"엄격", null로 호출할 수 없습니다.
입력. 이러한 전환 기능을 사용하면 집계 실행이
다음과 같이 행동합니다. Null 입력 값은 무시됩니다(함수
호출되지 않으며 이전 상태 값이 유지됩니다.) 만약
초기 상태 값이 null이면 null이 아닌 첫 번째 입력 값
상태 값을 대체하고 전환 함수가 호출됩니다.
null이 아닌 두 번째 입력 값부터 시작합니다. 이것은 다음과 같은 경우에 유용합니다.
다음과 같은 집계 구현최대.
이 동작은 다음 경우에만 사용할 수 있습니다.state_data_type다음과 같습니다input_data_type. 이러한 유형이 있을 때
다르면 null이 아닌 초기 조건을 제공하거나
엄격하지 않은 전환 함수.
상태 전환 기능이 엄격하지 않으면 각 입력 값에서 무조건 호출되며 다음을 처리해야 합니다. null 입력 및 null 전환 값. 이를 통해 집계 작성자는 집계에 대한 모든 권한을 갖습니다. null 값을 처리합니다.
최종 함수가 선언된 경우"엄격", 그러면 호출되지 않습니다.
종료 상태 값이 null입니다. 대신 null 결과는 다음과 같습니다.
자동으로 반환됩니다. (물론 이건 그냥 평범한 얘기다.
엄격한 함수의 동작.) 어쨌든 최종 함수는
null 값을 반환하는 옵션. 예를 들어, 최종
함수평균다음의 경우 null을 반환합니다.
입력 행이 0개인 것으로 확인됩니다.
집합의 이름(선택적으로 스키마 한정) 생성하는 함수입니다.
이 집계 함수가 사용되는 입력 데이터 유형
운영합니다. 이는 다음과 같이 지정할 수 있습니다."아무거나"검사하지 않는 토토 핫의 경우
입력 값(예:개수(*)).
호출할 상태 전환 함수의 이름 각 입력 데이터 값에 대해. 이는 일반적으로 다음의 함수입니다. 두 개의 인수, 첫 번째 유형은state_data_type그리고 두 번째 유형input_data_type. 또는 해당 항목을 검사하지 않는 토토 핫의 경우 입력 값, 함수는 유형의 인수 하나만 사용합니다.state_data_type. 어느 쪽이든 함수가 유형의 값을 반환해야 하는 경우state_data_type. 이 기능은 현재 상태 값과 현재 입력 데이터 항목, 다음 상태 값을 반환합니다.
토토 핫의 상태 값에 대한 데이터 유형입니다.
다음을 계산하기 위해 호출된 최종 함수의 이름 모든 입력 데이터를 순회한 후 집계의 결과입니다. 함수는 다음 유형의 단일 인수를 사용해야 합니다.state_data_type. 반환 데이터 유형 토토 핫의 반환 유형으로 정의됩니다. 기능. 만일ffunc아님 지정된 경우 종료 상태 값이 집계 결과이며 반환 유형은 다음과 같습니다.state_data_type.
상태 값의 초기 설정입니다. 이는 다음과 같아야 합니다. 데이터 유형에 허용되는 형식의 문자열 상수state_data_type. 그렇지 않은 경우 지정하면 상태 값은 null로 시작됩니다.
매개변수집합 생성그림의 순서뿐만 아니라 어떤 순서로도 쓸 수 있습니다. 위.