롤 토토 생성이름(BaseType =input_data_type[, sfunc1 =sfunc1, stype1 =State1_Type] [, sfunc2 =sfunc2, Stype2 =State2_Type] [, finalfunc =ffunc] [, initcond1 =Initial_Condition1] [, initcond2 =Initial_Condition2])
생성 할 총 기능의 이름.
이 집계 기능의 입력 데이터 유형 운영.
모든 주 전환 함수는 모든 것을 요구합니다 비 널 입력 데이터 값. 이것은 두 가지 기능이어야합니다 논쟁, 첫 번째 유형State1_Type그리고 두 번째 유형input_data_type. 그만큼 함수는 유형 값을 반환해야합니다State1_Type. 이 기능은 현재 상태 값 1 및 현재 입력 데이터 항목 및 다음 상태 가치를 반환합니다.
첫 번째 상태 값에 대한 데이터 유형 골재.
모든 주 전환 함수는 모든 것을 요구합니다 비 널 입력 데이터 값. 이것은 하나의 함수 여야합니다 유형의 주장State2_Type, 값을 반환합니다 같은 유형. 이 함수는 현재 상태 값 2를 취합니다 다음 주 가치를 반환합니다.
골재.
집계를 계산하기 위해 호출 된 최종 함수 결과 모든 입력 데이터가 통과 한 후 결과. 둘 다 상태 값이 사용되며 최종 기능은 2를 가져야합니다. 유형의 주장State1_TypeandState2_Type. 하나의 상태 값 만 있으면 사용되면 최종 기능은 단일 인수를 받아야합니다. 그 상태 가치 유형. 출력 데이터 유형 롤 토토는 이것의 반환 유형으로 정의됩니다 기능.
상태 값의 초기 값 1.
상태 값의 초기 값 2.
명령이 완료되면 메시지가 반환됩니다 성공적으로.
롤 토토 생성사용자 또는 허용합니다 확장 할 프로그래머Postgres새로운 롤 토토 함수를 정의하여 기능. 일부 롤 토토 와 같은 기본 유형의 함수min (int4)andavg (float8)이미 기지에 제공되어 있습니다 분포. 새로운 유형을 정의하거나 롤 토토가 필요한 경우 아직 제공되지 않은 기능생성 골재원하는 기능을 제공하는 데 사용할 수 있습니다.
집계 함수는 이름 및 입력 데이터로 식별됩니다. 유형. 두 개의 골재가 작동하는 경우 동일한 이름을 가질 수 있습니다. 다른 입력 유형. 혼란을 피하려면 만들지 마십시오 동일한 이름 및 입력 데이터 유형의 일반 기능은 골재.
롤 토토 함수는 1에서 3 사이에서 이루어집니다. 일반 기능 : 두 상태 전환 기능,sfunc1및sfunc2및 최종 계산 함수ffunc. 이것들은 다음과 같이 사용됩니다 다음은 다음과 같습니다.
sfunc1(내부 상태 1, Next-Data-Item) --- 다음 내부 상태 1sfunc2(내부 상태 2) --- 다음 내부 상태 2ffunc(내부 상태 1, 내부 상태 2) --- Aggregate-Value
Postgres하나 또는 두 개를 만듭니다 임시 변수 (데이터 유형Stype1및/또는Stype2) 현재 내부 상태를 유지합니다 집계의. 각 입력 데이터 항목에서 상태 전환 내부의 새로운 값을 계산하기 위해 기능이 호출됩니다. 상태 값. 모든 데이터가 처리 된 후 최종입니다 골재의 출력을 계산하기 위해 함수가 한 번 호출됩니다 값.
ffunc두 전환 기능 모두 지정됩니다. 한 번만 전환하는 경우 기능이 사용됩니다.ffuncis 선택 과목. 기본 동작ffunc는 제공되지 않습니다 사용중인 내부 상태 값의 최종 가치 (및 따라서 골재의 출력 유형은 해당 상태와 동일합니다. 가치 유형).
롤 토토 함수는 또한 하나 또는 두 개의 초기를 제공 할 수 있습니다. 조건, 즉 내부 상태 값의 초기 값 사용 중. 이들은 데이터베이스에 지정되고 저장됩니다 유형의 필드텍스트그러나 그럴 것입니다 상태 가치의 상수의 유효한 외부 표현 데이터 유형. 만약에sfunc1지정되어 있습니다 없이initcond1값 시스템이 호출되지 않습니다sfunc1첫 번째 입력 항목에서; 대신 내부 상태 값 1은입니다 첫 번째 입력 값으로 초기화되고sfunc1는 두 번째에서 시작합니다 입력 항목. 이것은 Min 및 Max와 같은 집계에 유용합니다. 메모 이 기능을 사용하는 집계는 호출 할 때 NULL을 반환합니다. 입력 값이 없습니다. 상태에 대한 비슷한 조항은 없습니다 가치 2; 만약에sfunc2지정되어 있습니다 그런 다음initcond2is 필수의.
use삭제 롤 토토롤 토토를 삭제합니다 기능.
의 매개 변수롤 토토 생성그림이 표시된 순서뿐만 아니라 어떤 순서로든 작성할 수 있습니다. 위에.
보유한 롤 토토 함수를 지정할 수 있습니다 상태와 최종 기능의 다양한 조합. 예를 들어, 그만큼count롤 토토 요구sfunc2(증분 기능)이지만sfunc1또는ffunc, 반면Sum롤 토토 요구sfunc1(추가 함수)이지만sfunc2또는ffunc및avg집계는 다음과 같이 두 상태 기능을 모두 필요로합니다 그럼ffunc(부서 기능) 답변을 생성합니다. 어쨌든 적어도 하나 이상 상태 함수는 정의되어야하며sfunc2해당 해당initcond2.
의 롤 토토 함수에 대한 장을 참조하십시오PostgreSQL 프로그래머 안내서완료 사용의 예.
롤 토토 생성isPostgres언어 확장. 없음롤 토토 생성sql92.