Funções de agregação

As funções agregadas retornam um valor único em um conjunto de registros. Você pode usar uma função agregada como parte de uma instrução SELECT, com um nome de campo (por exemplo, AVG(SALÁRIO)) ou em conjunto com uma expressão de coluna (por exemplo, AVG(SALÁRIO * 1.07)).

Você pode preceder a expressão de coluna com o operador DISTINCT para eliminar valores duplicados.

Exemplo

Copiar
COUNT (DISTINCT sobrenome)

Neste exemplo, somente os valores de sobrenome exclusivos são contabilizados.

Função de agregação

Retorna

SUM

O total dos valores em uma expressão de campo numérica. Por exemplo, SUM(SALÁRIO) retorna a soma de todos os valores de campo de salário.

AVG

A média dos valores em uma expressão de campo numérica. Por exemplo, AVG(SALÁRIO) retorna a média de todos os valores de campo de salário.

COUNT

O número de valores em qualquer expressão de campo. Por exemplo, COUNT(NAME) retorna o número de valores de nome. Quando a função COUNT é usada com um nome de campo, ela retorna o número de valores de campo não NULL. Um exemplo especial é COUNT(*), que retorna o número de registros no conjunto, incluindo os registros com valores NULL.

MAX

O valor máximo em qualquer expressão de campo. Por exemplo, MAX(SALÁRIO) retorna o valor de campo de salário máximo.

MIN

O valor mínimo em qualquer expressão de campo. Por exemplo, MIN(SALÁRIO) retorna o valor de campo de salário mínimo.

Exemplos

Copiar
SELECT SUM (Dados_Venda.Montante) AS agr FROM Dados_Venda

SELECT AVG (Dados_Venda.Montante) AS agr FROM Dados_Venda

SELECT COUNT (Dados_Venda.Montante) AS agr FROM Dados_Venda

SELECT MAX (Dados_Venda.Montante) AS agr FROM Dados_Venda WHERE Dados_Venda.Montante < 3000

SELECT MIN (Dados_Venda.Montante) AS agr FROM Dados_Venda WHERE Dados_Venda.Montante > 3000

Não é possível usar uma função agregada como argumento para outras funções. Se você o fizer, o software FileMaker retornará o código de erro 8309 (“Expressões envolvendo agregações não são suportadas”). Por exemplo, a seguinte instrução não é válida, pois a função agregada SUM não pode ser usada como argumento para a função ROUND:

Exemplo

Copiar
SELECT ROUND(SUM(Salário), 0) FROM Folha de pagamento

Entretanto, funções agregadas podem usar funções que retornam números como argumentos. A instrução a seguir é válida.

Exemplo

Copiar
SELECT SUM(ROUND(Salário, 0)) FROM Folha de pagamento