Função de janela MIN - Amazon Redshift

Função de janela MIN

A função MIN de janela retorna o mínimo dos valores de entrada da expressão. A função MIN funciona com valores numéricos e ignora valores NULL.

Sintaxe

MIN ( [ 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 MIN 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

Aceita qualquer tipo de dados como entrada. Retorna o mesmo tipo de dados da expressão.

Exemplos

O seguinte exemplo mostra o ID de vendas, a quantidade e a quantidade mínima desde o início da janela de dados:

select salesid, qty, min(qty) over (order by salesid rows unbounded preceding) from winsales order by salesid; salesid | qty | min ---------+-----+----- 10001 | 10 | 10 10005 | 30 | 10 10006 | 10 | 10 20001 | 20 | 10 20002 | 20 | 10 30001 | 10 | 10 30003 | 15 | 10 30004 | 20 | 10 30007 | 30 | 10 40001 | 40 | 10 40005 | 10 | 10 (11 rows)

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

O seguinte exemplo mostra o ID de vendas, a quantidade e a quantidade mínima em um quadro restrito:

select salesid, qty, min(qty) over (order by salesid rows between 2 preceding and 1 preceding) as min from winsales order by salesid; salesid | qty | min ---------+-----+----- 10001 | 10 | 10005 | 30 | 10 10006 | 10 | 10 20001 | 20 | 10 20002 | 20 | 10 30001 | 10 | 20 30003 | 15 | 10 30004 | 20 | 10 30007 | 30 | 15 40001 | 40 | 20 40005 | 10 | 30 (11 rows)