집계 함수스포츠 토토 사이트상태 값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
의지
없는 경우 0 (초기 상태 조건)을 반환합니다.
비 널 입력 값. 아마도 우리는 그 안에서 Null을 반환하고 싶을 것입니다
대신 사례 --- SQL 표준이 기대Sum
그렇게 행동합니다. 우리는 이것을 간단하게 할 수 있습니다
생략함으로써Initcond문구
초기 상태 조건은 널입니다. 일반적으로 이것은 의미합니다
그게sfunca
널 상태 조건 입력이지만Sum
|max
andMin
, 첫 번째 삽입으로 충분합니다
상태 변수에 대한 널 입력 값이없는 다음 시작합니다.
두 번째 비 널 입력에서 전환 기능을 적용합니다
값.PostgreSQL그렇게 할 것입니다
초기 조건이 null이고 전환이 자동으로
함수는 표시"엄격한"(즉, 그렇지 않습니다
널 입력을 요청 받으려면).
A에 대한 또 다른 기본 동작"엄격한"전이 함수는 이전입니다 널 입력 값이있을 때마다 상태 값이 변경되지 않습니다. 만난. 따라서 널 값은 무시됩니다. 필요하다면 널 입력에 대한 다른 동작은 전환을 정의합니다 비 강도로 기능하고 널 입력을 테스트하기 위해 코드를 코딩하고 필요한 모든 것을하십시오.
avg
(평균)는 더 복잡합니다
집계의 예. 두 개의 러닝 상태가 필요합니다.
입력의 합 및 입력 수의 수. 그만큼
최종 결과는 이러한 수량을 나누어 얻습니다. 평균입니다
일반적으로 2 요소 배열을 사용하여 구현합니다
전환 상태 값. 예를 들어, 내장 구현
의avg (float8)
모양 :
골재 생성 AVG ( sfunc = float8_accum, BaseType = float8, stype = float8 [], finalfunc = float8_avg, initcond = '0,0' );
자세한 내용은 설명을 참조하십시오.집계 생성참조 설명서.