The catalog pg_aggregate stores information about
   aggregate functions.  An aggregate function is a function that
   operates on a set of values (typically one column from each row
   that matches a query condition) and returns a single value computed
   from all these values.  Typical aggregate functions are
   sum, count, and
   max.  Each entry in
   pg_aggregate is an extension of an entry
   in pg_proc.  The pg_proc
   entry carries the aggregate's name, input and output data types, and
   other information that is similar to ordinary functions.
  
Table 43-2. pg_aggregate Columns
| Name | Type | References | Description | 
|---|
| aggfnoid | regproc | pg_proc.oid | pg_proc OID of the aggregate function | 
| aggtransfn | regproc | pg_proc.oid | Transition function | 
| aggfinalfn | regproc | pg_proc.oid | Final function (zero if none) | 
| aggsortop | oid | pg_operator.oid | Associated sort operator (zero if none) | 
| aggtranstype | oid | pg_type.oid | Data type of the aggregate function's internal transition (state) data | 
| agginitval | text |  | The initial value of the transition state.  This is a text
       field containing the initial value in its external string
       representation.  If this field is NULL, the transition state
       value starts out NULL | 
   New aggregate functions are registered with the CREATE AGGREGATE
   command.  See Section 33.10 for more information about
   writing aggregate functions and the meaning of the transition
   functions, etc.