43.2. pg_aggregate

O catálogo pg_aggregate armazena informações sobre funções de agregação. Uma função de agregação é uma função que opera sobre um conjunto de valores (tipicamente uma coluna de cada linha que corresponde à condição do comando), e retorna um único valor calculado a partir destes valores. As funções de agregação típicas são sum, count e max. Cada entrada em pg_aggregate é uma extensão de uma entrada em pg_proc. A entrada em pg_proc contém o nome da agregação, os tipos de dado de entrada e de saída, além de outras informações semelhantes às das funções comuns.

Tabela 43-2. Colunas do catálogo pg_aggregate

Nome Tipo Referencia Descrição
aggfnoid regproc pg_proc .oid OID da função de agregação em pg_proc
aggtransfn regproc pg_proc .oid Função de transição da agregação
aggfinalfn regproc pg_proc .oid Função final da agregação (zero se não houver nenhuma)
aggtranstype oid pg_type .oid Tipo de dado da transição interna (estado) da função de agregação
agginitval text   Valor inicial do estado da transição. É um campo texto, contendo o valor inicial na sua representação externa na forma de cadeia de caracteres. Se o valor for nulo, o valor do estado da transição começa por nulo.

As novas funções de agregação são registradas através do comando CREATE AGGREGATE. Para obter mais informações sobre como escrever funções de agregação, e o significado das funções de transição, etc., deve ser vista a Seção 33.9

Exemplo de utilização:

SELECT aggfnoid, aggtransfn, aggfinalfn FROM pg_aggregate;

      aggfnoid       |     aggtransfn      |    aggfinalfn
---------------------+---------------------+------------------
 pg_catalog.avg      | int8_accum          | numeric_avg
 pg_catalog.avg      | int4_avg_accum      | int8_avg
 pg_catalog.avg      | int2_avg_accum      | int8_avg
 pg_catalog.avg      | numeric_accum       | numeric_avg
 pg_catalog.avg      | float4_accum        | float8_avg
 pg_catalog.avg      | float8_accum        | float8_avg
 pg_catalog.avg      | interval_accum      | interval_avg
 pg_catalog.sum      | int8_sum            | -
 pg_catalog.sum      | int4_sum            | -
 pg_catalog.sum      | int2_sum            | -
 pg_catalog.sum      | float4pl            | -
 pg_catalog.sum      | float8pl            | -
 pg_catalog.sum      | cash_pl             | -
 pg_catalog.sum      | interval_pl         | -
 pg_catalog.sum      | numeric_add         | -
 pg_catalog.max      | int8larger          | -
 pg_catalog.max      | int4larger          | -
 pg_catalog.max      | int2larger          | -
 pg_catalog.max      | oidlarger           | -
 pg_catalog.max      | float4larger        | -
 pg_catalog.max      | float8larger        | -
 pg_catalog.max      | int4larger          | -
 pg_catalog.max      | date_larger         | -
 pg_catalog.max      | time_larger         | -
 pg_catalog.max      | timetz_larger       | -
 pg_catalog.max      | cashlarger          | -
 pg_catalog.max      | timestamp_larger    | -
 pg_catalog.max      | timestamptz_larger  | -
 pg_catalog.max      | interval_larger     | -
 pg_catalog.max      | text_larger         | -
 pg_catalog.max      | numeric_larger      | -
 pg_catalog.min      | int8smaller         | -
 pg_catalog.min      | int4smaller         | -
 pg_catalog.min      | int2smaller         | -
 pg_catalog.min      | oidsmaller          | -
 pg_catalog.min      | float4smaller       | -
 pg_catalog.min      | float8smaller       | -
 pg_catalog.min      | int4smaller         | -
 pg_catalog.min      | date_smaller        | -
 pg_catalog.min      | time_smaller        | -
 pg_catalog.min      | timetz_smaller      | -
 pg_catalog.min      | cashsmaller         | -
 pg_catalog.min      | timestamp_smaller   | -
 pg_catalog.min      | timestamptz_smaller | -
 pg_catalog.min      | interval_smaller    | -
 pg_catalog.min      | text_smaller        | -
 pg_catalog.min      | numeric_smaller     | -
 count               | int8inc             | -
 pg_catalog.variance | int8_accum          | numeric_variance
 pg_catalog.variance | int4_accum          | numeric_variance
 pg_catalog.variance | int2_accum          | numeric_variance
 pg_catalog.variance | float4_accum        | float8_variance
 pg_catalog.variance | float8_accum        | float8_variance
 pg_catalog.variance | numeric_accum       | numeric_variance
 pg_catalog.stddev   | int8_accum          | numeric_stddev
 pg_catalog.stddev   | int4_accum          | numeric_stddev
 pg_catalog.stddev   | int2_accum          | numeric_stddev
 pg_catalog.stddev   | float4_accum        | float8_stddev
 pg_catalog.stddev   | float8_accum        | float8_stddev
 pg_catalog.stddev   | numeric_accum       | numeric_stddev
(60 linhas)

SourceForge.net Logo