Função de janela AVG - Amazon Redshift

Função de janela AVG

A função de janela AVG retorna a média (meio aritmético) dos valores de expressão de entrada. A função AVG funciona com valores numéricos e ignora valores NULL.

Sintaxe

AVG ( [ALL ] expression ) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )

Argumentos

expressão

A coluna ou expressão de destino na qual a função opera.

ALL

Com o argumento ALL, a função retém todos os valores duplicados da expressão para contagem. ALL é o padrão. DISTINCT não é compatível.

OVER

Especifica as cláusulas de janela das funções de agregação. A cláusula OVER distingue funções de agregação de janela das funções de agregação de conjuntos normais.

PARTITION BY expr_list

Define a janela para a função AVG em termos de uma ou mais expressões.

ORDER BY order_list

Classifica as linhas dentro de cada partição. Se nenhuma PARTITION BY for especificada, ORDER BY usa a tabela completa.

frame_clause

Se uma cláusula ORDER BY é usada para uma função agregada, uma cláusula de quadro explícita é necessária. A cláusula de quadro refina o conjunto de linhas na janela de uma função, incluindo ou excluindo conjuntos de linhas no resultado ordenado. A cláusula de quadro consiste na palavra-chave ROWS e nos especificadores associados. Consulte Resumo da sintaxe de funções da janela.

Tipos de dados

Os tipos de argumentos compatíveis com a função AVG são SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL e DOUBLE PRECISION.

Os tipos de retorno compatíveis com a função AVG são:

  • BIGINT para argumentos SMALLINT ou INTEGER

  • NUMERIC para argumentos BIGINT

  • DOUBLE PRECISION para argumentos de ponto flutuante

Exemplos

O seguinte exemplo calcula uma média móvel das quantidades vendidas por data; ordene os resultados por ID de data e ID de vendas:

select salesid, dateid, sellerid, qty, avg(qty) over (order by dateid, salesid rows unbounded preceding) as avg from winsales order by 2,1; salesid | dateid | sellerid | qty | avg ---------+------------+----------+-----+----- 30001 | 2003-08-02 | 3 | 10 | 10 10001 | 2003-12-24 | 1 | 10 | 10 10005 | 2003-12-24 | 1 | 30 | 16 40001 | 2004-01-09 | 4 | 40 | 22 10006 | 2004-01-18 | 1 | 10 | 20 20001 | 2004-02-12 | 2 | 20 | 20 40005 | 2004-02-12 | 4 | 10 | 18 20002 | 2004-02-16 | 2 | 20 | 18 30003 | 2004-04-18 | 3 | 15 | 18 30004 | 2004-04-18 | 3 | 20 | 18 30007 | 2004-09-07 | 3 | 30 | 19 (11 rows)

Para uma descrição da tabela WINSALES, consulte Amostra de tabela para exemplos de funções de janela.