PostgreSQL | ||
---|---|---|
이전 | 다음 |
Postgre의 골재는 상태로 표현됩니다 전환 기능. 즉, 집계는 용어로 정의 될 수 있습니다 인스턴스가 처리 될 때마다 수정 된 상태. 일부 상태 함수는 인스턴스에서 특정 값을 살펴 봅니다. 새로운 상태 계산 (Create Aggregate Syntax에서 SFUNC1) 다른 사람들은 자신의 내부 상태를 추적합니다 (sfunc2). sfunc1 만 사용하는 집계를 정의하면 속성 값의 실행중인 함수를 계산하는 집계 각 인스턴스에서. "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에서 시작하여 하나를 추가합니다 인스턴스 값을 무시하고 각 인스턴스에 대해 총을 실행합니다. 여기, 우리는 내장 된 INT4Inc 루틴을 사용하여 우리를 위해 일을합니다. 이것 일상적인 증가 (하나에 추가) 인수.
토토 결과 생성 my_count (sfunc2 = int4inc, - 하나를 추가하십시오 BaseType = int4, stype2 = int4, initcond2 = '0') emp에서 emp_count로 my_count (*)를 선택하십시오. +----------+ | emp_count | +----------+ | 5 | +----------+
"평균"은 둘 다 필요한 토토 결과의 예입니다. 실행중인 합계와 계산하는 함수를 계산하는 함수 런닝 카운트. 모든 인스턴스가 처리되면 토토 결과에 대한 최종 답변은 달리기 합계가 런닝 카운트. 우리는 사용한 int4pl 및 int4inc 루틴을 사용합니다 Postgres Integer Division 루틴, 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 | +-----------+
이전 | 홈 | 다음 |
SQL 확장 : 연산자 | up | 인터페이스 지수 확장 |