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)