Enterprise Edition Home | Express Edition Home | Previous Page | Next Page   SQL Statements > CREATE AGGREGATE >

Extending the Functionality of Aggregates

Dynamic Server provides two ways to extend the functionality of aggregates. Use the CREATE AGGREGATE statement only for the second of the two cases.

Example of Creating a User-Defined Aggregate

The following example defines a user-defined aggregate named average:

CREATE AGGREGATE average
   WITH (
      INIT = average_init,
      ITER = average_iter,
      COMBINE = average_combine,
      FINAL = average_final
      )

Before you use the average aggregate in a query, you must also use CREATE FUNCTION statements to create the support functions specified in the CREATE AGGREGATE statement.

The following table gives an example of the task that each support function might perform for average.

Keyword Support
Function
Effect
INIT average_init Allocates and initializes an extended data type storing the current sum and the current row count
ITER average_iter For each row, adds the value of the expression to the current sum and increments the current row count by one
COMBINE average_combine Adds the current sum and the current row count of one partial result to the other and returns the updated result
FINAL average_final Returns the ratio of the current sum to the current row count and converts this ratio to the result type
Enterprise Edition Home | Express Edition Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]