MIN (Azure Stream Analytics)
Zwraca minimalną wartość w wyrażeniu.
Składnia
-- Aggregate Function Syntax
MIN ( expression )
-- Analytic Function Syntax
MIN ( expression ) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])
Argumenty
expression
To stała, nazwa kolumny lub funkcja oraz dowolna kombinacja operatorów arytmetycznych. Funkcje agregujące i podquery nie są dozwolone.
Min można używać z kolumnami Bit, Bigint, Datetime i Float.
Min można również używać z NVARCHAR(MAX) z następującym zachowaniem:
- Jeśli kolumna nie została jawnie oddana do NVARCHAR(MAX), funkcja MIN spróbuje niejawnie rzutować ją na FLOAT. Niezgodność typów spowoduje błędy.
- Jeśli kolumna została jawnie rzutowana na NVARCHAR(MAX) przy użyciu funkcji CAST lub TRY_CAST, zostanie zwrócona minimalna wartość ciągu.
OVER ([<PARTITION BY klauzula><LIMIT DURATION klauzuli> [<klauzula> WHEN]]
Określa grupę wierszy, dla których zastosowano min. Klauzula PARTITION BY określa, że wiersze z tym samym kluczem partycji zostaną zgrupowane razem. Klauzula LIMIT DURATION określa, ile historii należy do grupy. Klauzula WHEN określa warunek logiczny dla wierszy do ujęć w grupie. Aby uzyskać więcej informacji na temat użycia, zobacz klauzulę OVER .
Typy zwracane
Zwraca wartość taką samą jak wyrażenie.
Przykłady
W przypadku składni agregującej zmniejszymy liczbę wierszy. W tym miejscu wybieramy minimalną taryfę dla każdego opłaty co godzinę:
SELECT
TollId,
System.Timestamp() AS WindowEnd,
MIN(Toll) AS MinFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
TumblingWindow(hour,1)
Składnia analizy zapewnia kardynalność danych wejściowych. Tutaj dla każdego pojazdu przechodzącego przez opłaty porównujemy bieżącą taryfę do minimum w ciągu ostatniej godziny:
SELECT
TollId,
System.Timestamp() AS PassageTime,
LicensePlate,
Toll AS Fare,
MIN (Toll) OVER (PARTITION BY VehicleClass LIMIT DURATION(hour,1)) AS MinimumFareOverLastHour
FROM Input TIMESTAMP BY EntryTime