Compartilhar via


mean função de agregação

Aplica-se a:marque sim SQL do Databricks marque sim Databricks Runtime

Retorna a média calculada dos valores de um grupo. Essa função é um sinônimo para avg a função de agregação.

Sintaxe

mean ( [ALL | DISTINCT] expr ) [FILTER ( WHERE cond ) ]

Essa função também pode ser invocada como uma função de janela usando a cláusula OVER.

Argumentos

  • expr: uma expressão avaliada como um numérico.
  • cond: Uma expressão booliana opcional que filtra as linhas usadas para agregação.

Retornos

O tipo de resultado é calculado como para os argumentos:

  • DECIMAL(p, s): o tipo de resultado é um DECIMAL(p + 4, s + 4). Se a precisão máxima para DECIMAL for atingida, o aumento na escala é limitado para evitar a perda de dígitos significativos.
  • Intervalo de ano-mês: o resultado será um INTERVAL YEAR TO MONTH.
  • Intervalo de dia-hora, o resultado será um INTERVAL DAY TO SECOND.
  • Em todos os outros casos, o resultado é um DOUBLE.

Nulos dentro do grupo são ignorados. Se um grupo estiver vazio ou consistir apenas em nulos, o resultado será NULL.

Se DISTINCT for especificado, a média será calculada depois que as duplicatas tiverem sido removidas.

Aviso

No Databricks Runtime, se spark.sql.ansi.enabled for false, um estouro retornará NULL em vez de um erro.

Condições de erro comuns

Exemplos

> SELECT mean(col) FROM VALUES (1), (2), (3) AS tab(col);
 2.0

> SELECT mean(DISTINCT col) FROM VALUES (1), (1), (2), (NULL) AS tab(col);
 1.5

> SELECT mean(col) FROM VALUES (1), (2), (NULL) AS tab(col);
 1.5

> SELECT mean(c1) FROM VALUES(5e307::DOUBLE), (5e307::DOUBLE) AS tab(c1);
  Error: ARITHMETIC_OVERFLOW