MAX (Azure Stream Analytics)
Retorna o valor máximo na expressão.
Sintaxe
-- Aggregate Function Syntax
MAX ( expression )
-- Analytic Function Syntax
MAX ( expression ) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])
Argumentos
expressão
É uma constante, um nome da coluna ou uma função e qualquer combinação de operadores aritméticos. Funções de agregação e subconsultas não são permitidas.
MAX pode ser usado com colunas Bit, Bigint, Datetime e Float.
MAX também pode ser usado com NVARCHAR(MAX) com o seguinte comportamento:
- Se a coluna não tiver sido explicitamente convertida em NVARCHAR(MAX), MAX tentará convertê-la implicitamente em FLOAT. Incompatibilidades de tipo resultarão em erros.
- Se a coluna tiver sido explicitamente convertida em NVARCHAR(MAX) usando CAST ou TRY_CAST, o valor máximo da cadeia de caracteres será retornado.
OVER ([<Cláusula LIMIT DURATION> da cláusula><PARTITION BY [<cláusula> WHEN]]
Determina o grupo de linhas sobre o qual MAX é aplicado. A cláusula PARTITION BY especifica que as linhas com a mesma chave de partição serão agrupadas. A cláusula LIMIT DURATION especifica quanto histórico está incluído no grupo. A cláusula WHEN especifica uma condição booliana para as linhas a serem incluídas no grupo. Consulte a cláusula OVER para obter mais detalhes sobre o uso.
Tipos de retorno
Retorna o mesmo valor da expressão.
Exemplos
Com a sintaxe de agregação, reduziremos o número de linhas. Aqui, selecionamos a tarifa máxima em cada Pedágio a cada hora:
SELECT
TollId,
System.Timestamp() AS WindowEnd,
MAX(Toll) AS MaxFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
TumblingWindow(hour,1)
Com a sintaxe de análise, mantemos a cardinalidade de entrada. Aqui para cada veículo que passa pelo pedágio, comparamos a tarifa atual com o máximo na última hora:
SELECT
TollId,
System.Timestamp() AS PassageTime,
LicensePlate,
Toll AS Fare,
MAX (Toll) OVER (PARTITION BY VehicleClass LIMIT DURATION(hour,1)) AS MaximumFareOverLastHour
FROM Input TIMESTAMP BY EntryTime