Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Função de janela SUM - Amazon Redshift

Função de janela SUM

A função de janela SUM retorna a soma dos valores de entrada da coluna ou expressão. A função SUM funciona com valores numéricos e ignora valores NULL.

Sintaxe

SUM ( [ 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. 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 SUM 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 SUM são SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL e DOUBLE PRECISION.

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

  • BIGINT para argumentos SMALLINT ou INTEGER

  • NUMERIC para argumentos BIGINT

  • DOUBLE PRECISION para argumentos de ponto flutuante

Exemplos

O seguinte exemplo cria uma soma cumulativa (contínua) das quantidades de vendas solicitadas por data e ID de vendas:

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

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

O seguinte exemplo cria uma soma cumulativa (contínua) de quantidades de vendas por data, particiona os resultados por ID do vendedor e ordena os resultados por data e ID de vendas na partição:

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

O seguinte exemplo numera todas as linhas sequencialmente no conjunto de resultados, ordenadas pelas colunas SELLERID e SALESID:

select salesid, sellerid, qty, sum(1) over (order by sellerid, salesid rows unbounded preceding) as rownum from winsales order by 2,1; salesid | sellerid | qty | rownum --------+----------+------+-------- 10001 | 1 | 10 | 1 10005 | 1 | 30 | 2 10006 | 1 | 10 | 3 20001 | 2 | 20 | 4 20002 | 2 | 20 | 5 30001 | 3 | 10 | 6 30003 | 3 | 15 | 7 30004 | 3 | 20 | 8 30007 | 3 | 30 | 9 40001 | 4 | 40 | 10 40005 | 4 | 10 | 11 (11 rows)

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

O seguinte exemplo numera todas as linhas sequencialmente no conjunto de resultados, particiona os resultados por SELLERID e ordena os resultados por SELLERID e SALESID na partição:

select salesid, sellerid, qty, sum(1) over (partition by sellerid order by sellerid, salesid rows unbounded preceding) as rownum from winsales order by 2,1; salesid | sellerid | qty | rownum ---------+----------+-----+-------- 10001 | 1 | 10 | 1 10005 | 1 | 30 | 2 10006 | 1 | 10 | 3 20001 | 2 | 20 | 1 20002 | 2 | 20 | 2 30001 | 3 | 10 | 1 30003 | 3 | 15 | 2 30004 | 3 | 20 | 3 30007 | 3 | 30 | 4 40001 | 4 | 40 | 1 40005 | 4 | 10 | 2 (11 rows)
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.