토토 결과에서Postgresare 상태 전이 기능 측면에서 표현됩니다. 즉, an 토토 결과는 수정 된 상태로 정의 될 수 있습니다. 인스턴스가 처리 될 때마다 일부 상태 기능은 a를 봅니다 새 상태를 계산할 때 인스턴스의 특정 값 (sfunc1생성 토토 결과에서 구문) 다른 사람들은 자신의 내부 상태 만 추적합니다. (sfunc2). 토토 결과를 정의하면 만 사용sfunc1, 우리는 an을 정의합니다 속성 값의 실행중인 함수를 계산하는 집계 각 인스턴스에서. "Sum"은 이런 종류의 집계의 예입니다. "Sum"은 0에서 시작하여 항상 현재 인스턴스의 값을 추가합니다. 런닝 총계까지. 우리는를 사용할 것입니다.int4pl그게 내장Postgres이 추가를 수행하려면
집계 complex_sum 만들기 ( sfunc1 = complex_add, BaseType = Complex, stype1 = complex, initcond1 = '(0,0)' ); test_complex에서 complex_sum (a)을 선택하십시오. +------------+ | complex_sum | +------------+ | (34,53.9) | +-----------+
만 정의하면sfunc2, 우리는입니다 실행중인 작동 함수를 계산하는 토토 결과를 지정합니다. 각 인스턴스의 속성 값과 무관합니다. "카운트"입니다 이런 종류의 토토 결과의 가장 일반적인 예. "카운트"가 시작됩니다 0에서 각 인스턴스에 대해 1 개를 추가합니다. 인스턴스 값을 무시합니다. 여기에서 우리는 내장을 사용합니다int4inc우리를 위해 일하는 일상. 이것 일상적인 증가 (하나에 추가) 인수.
집계 생성 my_count ( sfunc2 = int4inc, - 하나를 추가하십시오 BaseType = int4, stype2 = int4, initcond2 = '0' ); emp에서 emp_count로 my_count (*)를 선택하십시오. +----------+ | emp_count | +----------+ | 5 | +----------+
"평균"은 둘 다 필요한 토토 결과의 예입니다. 실행중인 합계와 계산하는 함수를 계산하는 함수 런닝 카운트. 모든 인스턴스가 처리되면 토토 결과에 대한 최종 답변은 달리기 합계가 런닝 카운트. 우리는를 사용합니다.int4plandint4inc이전에 사용한 루틴 뿐만 아니라Postgres정수 부서 루틴,int4div, 계산 카운트에 의한 합계의 분할.
집계 생성 my_average ( sfunc1 = int4pl, - sum BaseType = int4, stype1 = int4, sfunc2 = int4inc, - count stype2 = int4, finalfunc = int4div, - 부서 initcond1 = '0', initcond2 = '0' ); emp에서 emp_average로 my_average (Salary)를 선택하십시오. +------------+ | emp_average | +------------+ | 1640 | +-----------+