# AVG

AVG é uma função de agregação que calcula a média de uma expressão sobre um conjunto de linhas (consulte Agregações (funções de conjunto)). AVG somente é permitida nas expressões que têm como resultado tipos de dado numéricos.

#### Sintaxe

    AVG ( [ DISTINCT | ALL ] Expressão )

O qualificador DISTINCT elimina as linhas duplicadas. O qualificador ALL mantém as linhas duplicadas. ALL é o valor padrão, se nem ALL nem DISTINCT for especificado. Por exemplo, se uma coluna contiver os valores 1.0, 1.0, 1.0, 1.0 e 2.0, AVG(coluna) retornará um valor menor que AVG(DISTINCT coluna).

Somente é permitida uma expressão de agregação DISTINCT por ExpressãoSeleção. Por exemplo, a seguinte consulta não é válida:

    SELECT AVG (DISTINCT TEMPO_VÔO), SUM (DISTINCT MILHAS)
    FROM VÔOS

A expressão pode conter várias referências a colunas ou expressões, mas não pode conter outra agregação ou subconsulta. Deve ter como resultado um tipo de dado numérico do SQL-92. Portanto, podem ser chamados métodos que têm como resultado tipos de dado SQL-92. Se uma expressão for avaliada como NULL, a agregação saltará este valor.

O tipo de dado do resultado é o mesmo da expressão em que opera (nunca estoura). Por exemplo, a seguinte consulta retorna o INTEGER 1, que pode não ser o esperado:

    SELECT AVG(C1)
    FROM (VALUES (1), (1), (1), (1), (2)) AS MINHA_TABELA (C1)

Se for desejada uma precisão maior, a expressão deverá ser convertida para outro tipo de dado:

    SELECT AVG(CAST (C1 AS DOUBLE PRECISION))
    FROM (VALUES (1), (1), (1), (1), (2)) AS MINHA_TABELA (c1)

Tópico pai: Funções nativas