MAX (Azure Stream Analytics)
Devuelve el valor máximo de la expresión.
Sintaxis
-- Aggregate Function Syntax
MAX ( expression )
-- Analytic Function Syntax
MAX ( expression ) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])
Argumentos
expression
Es una constante, un nombre de columna o una función y cualquier combinación de operadores aritméticos. No se permiten funciones de agregado ni subconsultas.
MAX se puede usar con columnas Bit, Bigint, Datetime y Float.
MAX también se puede usar con NVARCHAR(MAX) con el siguiente comportamiento:
- Si la columna no se ha convertido explícitamente en NVARCHAR(MAX), MAX intentará convertirla implícitamente en FLOAT. Los errores de coincidencia de tipos producirán errores.
- Si la columna se ha convertido explícitamente en NVARCHAR(MAX) mediante CAST o TRY_CAST, se devolverá el valor de cadena máxima.
OVER ([<cláusula PARTITION BY cláusula>>< LIMIT DURATION [<cláusula> WHEN]]
Determina el grupo de filas sobre el que se aplica MAX. La cláusula PARTITION BY especifica que las filas con la misma clave de partición se agruparán. La cláusula LIMIT DURATION especifica la cantidad de historial que se incluye en el grupo. La cláusula WHEN especifica una condición booleana para que las filas se incluyan en el grupo. Consulte la cláusula OVER para obtener más información sobre el uso.
Tipos de valor devuelto
Devuelve un valor igual a la expresión.
Ejemplos
Con la sintaxis de agregado, reduciremos el número de filas. Aquí seleccionamos la tarifa máxima en cada peaje cada hora:
SELECT
TollId,
System.Timestamp() AS WindowEnd,
MAX(Toll) AS MaxFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
TumblingWindow(hour,1)
Con la sintaxis de análisis, mantenemos la cardinalidad de entrada. Aquí para cada vehículo que pasa por el peaje, comparamos la tarifa actual con el máximo durante la ú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