사설 토토 사이트 함수PostgreSQL상태 값and상태 전환 기능. 즉, 골재는 정의 될 수 있습니다 입력 항목이있을 때마다 수정 된 상태 약관 가공. 새로운 사설 토토 사이트 함수를 정의하려면 데이터를 선택합니다. 상태 값에 대한 유형, 상태의 초기 값 및 상태 전환 기능. 상태 전환 기능은 정당합니다 컨텍스트 외부에서도 사용할 수있는 일반 기능 집계의. 에이최종 기능can 또한 사설 토토 사이트의 원하는 결과가 실행 중에 유지 해야하는 데이터와 다릅니다. 상태 가치.
따라서 보이는 인수 및 결과 데이터 유형 외에 사설 토토 사이트 사용자가 내부 상태 가치 데이터가 있습니다. 인수와 결과와 다를 수있는 유형 유형.
최종 함수를 사용하지 않는 사설 토토 사이트를 정의하면
우리는
각 행에서 열 값.Sum
IS
이런 종류의 사설 토토 사이트의 예.Sum
0에서 시작하여 항상 전류를 추가합니다
Row의 가치가 달리는 총계. 예를 들어, 우리가 만들고 싶다면
에이Sum
데이터 작업을위한 집계
복소수에 대한 유형, 추가 기능 만 필요합니다.
해당 데이터 유형. 집계 정의는 다음과 같습니다.
사설 토토 사이트 complex_sum 만들기 ( sfunc = complex_add, BaseType = Complex, stype = complex, initcond = '(0,0)' ); test_complex에서 complex_sum (a)을 선택하십시오. complex_sum ------------- (34,53.9)
(실제로는 사설 토토 사이트의 이름을 지정합니다Sum
그리고 의존PostgreSQL어떤 종류의 합계를 파악하려면
유형의 열에 적용하려면복잡한.)
위의 정의Sum
의지
unnull이없는 경우 return zero (초기 상태 조건)
입력 값. 아마도 우리는 그 경우에 null을 반환하고 싶을 것입니다.
--- SQL 표준이 기대Sum
TO
그렇게 행동하십시오. 우리는 단순히를 생략하여 이것을 할 수 있습니다.initcond초기 상태가되도록 문구
상태는 무일합니다. 일반적으로 이것은sfuncnull을 확인해야합니다
상태 조건 입력이지만Sum
및 다른 간단한 골재와 같은max
andMin
, It
첫 번째 Nonnull 입력 값을
상태 변수를 다음에 전환 기능을 적용하기 시작합니다.
두 번째 비 연소 입력 값.PostgreSQL초기 조건은 널이고 전환 함수가 표시됩니다"엄격한"(즉, 요청되지 않아야합니다
널 입력).
A에 대한 또 다른 기본 동작"엄격한"전이 함수는 이전입니다 널 입력 값이있을 때마다 상태 값이 변경되지 않습니다. 만난. 따라서 널 값은 무시됩니다. 필요하다면 널 입력에 대한 다른 동작은 전환 기능은 엄격한 기능으로 기능하고 NULL을 테스트하도록 코딩합니다. 입력하고 필요한 모든 것을하십시오.
avg
(평균)는 더 복잡합니다
사설 토토 사이트의 예. 두 개의 러닝 상태가 필요합니다.
입력의 합 및 입력 수의 수. 그만큼
최종 결과는 이러한 수량을 나누어 얻습니다. 평균입니다
일반적으로 2 요소 배열을 상태로 사용하여 구현
값. 예를 들어, 내장 구현avg (float8)
모양 :
골재 생성 AVG ( sfunc = float8_accum, BaseType = float8, stype = float8 [], finalfunc = float8_avg, initcond = '0,0' );
사설 토토 사이트 함수는 다형성 상태 전이를 사용할 수 있습니다 동일한 함수가 될 수 있도록 함수 또는 최종 기능 여러 골재를 구현하는 데 사용됩니다. 보다섹션 33.2.5다형성 기능에 대한 설명. a 한 단계 더 나아가서, 골재 기능 자체는 다형성 기본 유형 및 상태 유형, 단일을 허용합니다. 다중 입력 데이터 유형에 대한 서비스 정의. 여기 다형성 사설 토토 사이트의 예입니다.
집계 Array_accum 작성 ( sfunc = array_append, BaseType = Anylement, stype = anyArray, initcond = '' );
여기, 골재 호출의 실제 상태 유형은 다음과 같습니다. 실제 입력 유형을 요소로하는 배열 유형.
다음은 다음과 같은 두 가지 실제 데이터 유형을 사용하는 출력입니다. 인수 :
attrelid :: regclass, array_accum (attname) pg_attribute에서 여기서 attnum 0 및 attrelid = 'pg_user':: regclass Attrelid에 의한 그룹; attrelid | Array_accum -------------------------------------------------------------------------------------------------- pg_user | useName, useysid, usecreatedb, useuper, usecatupd, passwd, valuntil, useconfig
자세한 내용은 참조하십시오.사설 토토 사이트 생성명령.