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 em um conjunto de
valores (normalmente uma coluna de cada linha que corresponde a uma
condição de consulta), e retorna um único valor calculado a partir
de todos estes valores.
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 carrega o
nome da agregação, os tipos de dados de entrada e saída, e outras
informações semelhantes às das funções comuns.
Tabela 52.2. Colunas de pg_aggregate
Coluna Tipo de dados Descrição |
|---|
pg_proc OID da função de agregação |
Tipo da agregação:
|
Número de argumentos diretos (não-agregados) de um conjunto ordenado,
ou agregações de conjunto-hipotético, contando uma matriz
|
Função de transição |
Função final (zero se nenhuma) |
Função de combinação (zero se nenhuma) |
Função de serialização (zero se nenhuma) |
Função de desserialização (zero se nenhuma) |
Função de transição direta para o modo de agregação móvel (zero se nenhuma) |
Função de transição inversa para o modo de agregação móvel (zero se nenhuma) |
Função final para o modo de agregação móvel (zero se nenhuma) |
Verdade para passar argumentos fictícios extras para |
Verdade para passar argumentos fictícios extras para |
Se |
Como |
Operador de classificação associado (zero se nenhum) |
Tipo de dados dos dados de transição interna (estado) da função de agregação |
Tamanho médio aproximado (em bytes) dos dados do estado de transição, ou zero para usar a estimativa padrão |
Tipo de dados dos dados de transição interna (estado) da função de agregação para o modo de agregação móvel (zero se nenhum) |
Tamanho médio aproximado (em bytes) dos dados do estado de transição para o modo de agregação móvel, ou zero para usar a estimativa padrão |
O valor inicial do estado de transição. Este é um campo de texto que contém o valor inicial em sua representação de cadeia de caracteres externa. Se este campo for nulo, o valor do estado de transição começará com nulo. |
O valor inicial do estado de transição para o modo de agregação móvel. Este é um campo de texto que contém o valor inicial em sua representação de cadeia de caracteres externa. Se este campo for nulo, o valor do estado de transição começará com nulo. |
Veja Agregações definidas pelo usuário para obter mais informações sobre como escrever funções de agregação e o significado das funções de transição, etc.
Exemplo 52.1. Exemplo do tradutor
Funções de agregação
Este exemplo usa o meta-comando \daSx avg do
psql para listar todas as funções de
agregação para média aritmética (avg)
existentes, juntamente com seus tipos de dados de resultado e de
argumento, além de uma descrição da função.
ana=> \daSx avg
-[ RECORD 1 ]----------------+-------------------------------------
Esquema | pg_catalog
Nome | avg
Tipo de dados do resultado | numeric
Tipo de dados dos argumentos | bigint
Descrição | the average (arithmetic mean) as ↵
| numeric of all bigint values
-[ RECORD 2 ]----------------+-------------------------------------
Esquema | pg_catalog
Nome | avg
Tipo de dados do resultado | double precision
Tipo de dados dos argumentos | double precision
Descrição | the average (arithmetic mean) as ↵
| float8 of all float8 values
-[ RECORD 3 ]----------------+-------------------------------------
Esquema | pg_catalog
Nome | avg
Tipo de dados do resultado | numeric
Tipo de dados dos argumentos | integer
Descrição | the average (arithmetic mean) as ↵
| numeric of all integer values
-[ RECORD 4 ]----------------+-------------------------------------
Esquema | pg_catalog
Nome | avg
Tipo de dados do resultado | interval
Tipo de dados dos argumentos | interval
Descrição | the average (arithmetic mean) as ↵
| interval of all interval values
-[ RECORD 5 ]----------------+-------------------------------------
Esquema | pg_catalog
Nome | avg
Tipo de dados do resultado | numeric
Tipo de dados dos argumentos | numeric
Descrição | the average (arithmetic mean) as ↵
| numeric of all numeric values
-[ RECORD 6 ]----------------+-------------------------------------
Esquema | pg_catalog
Nome | avg
Tipo de dados do resultado | double precision
Tipo de dados dos argumentos | real
Descrição | the average (arithmetic mean) as ↵
| float8 of all float4 values
-[ RECORD 7 ]----------------+-------------------------------------
Esquema | pg_catalog
Nome | avg
Tipo de dados do resultado | numeric
Tipo de dados dos argumentos | smallint
Descrição | the average (arithmetic mean) as ↵
| numeric of all smallint values