- Categorias:
Funções de agregação (General) , Funções de janela
MAX¶
Retorna o valor máximo para os registros dentro de expr. NULL são ignorados, a menos que todos os registros sejam NULL, caso em que um valor NULL é retornado.
Sintaxe¶
Função de agregação
Função de janela
Para uma sintaxe window_frame detalhada, consulte Sintaxe e uso da função de janela.
Retornos¶
O tipo de dados do valor retornado é o mesmo que o tipo de dados dos valores de entrada.
Notas de uso¶
Para compatibilidade com outros sistemas, você pode especificar a palavra-chave DISTINCT como argumento para a função, mas ela não tem nenhum efeito.
Se a função for chamada como uma função de janela, a janela pode incluir um
window_frameopcional. Owindow_frame(seja cumulativo ou deslizante) especifica o subconjunto de linhas dentro da janela para o qual os valores somados são retornados. Se nenhumwindow_framefor especificado, o padrão é o seguinte quadro cumulativo de janela (de acordo com o padrão ANSI para funções de janela):RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROWPara obter mais detalhes sobre quadros de janela, incluindo sintaxe e exemplos, consulte Notas de uso para quadros de janela.
Detalhes do agrupamento¶
The comparisons follow the collation based on the input arguments” collations and precedences.
The collation of the result is the same as the collation of the input.
Exemplos¶
Os exemplos a seguir demonstram como utilizar a função MAX.
Criar uma tabela e dados:
Exibir os dados:
Use a função MAX para recuperar o maior valor na coluna denominada d:
Combine a cláusula GROUP BY com a função MAX para recuperar os maiores valores em cada grupo (onde cada grupo é baseado no valor da coluna k):
Use a PARTITION BY clause to break the data into groups based on the
value of k. This is similar to, but not identical to, using
GROUP BY. In particular, GROUP BY produces one output
row per group, while PARTITION BY produces one output row per input
row.
Use uma cláusula de janela ORDER BY para criar uma janela deslizante com duas linhas de largura, e produza o valor mais alto dentro daquela janela. (Lembre-se de que ORDER BY na cláusula de janela é separado de ORDER BY no nível de instrução). Este exemplo usa uma única partição, portanto não há cláusula PARTITION BY na cláusula OVER().