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

Zobacz też