Udostępnij za pośrednictwem


MAX (Azure Stream Analytics)

Zwraca maksymalną wartość w wyrażeniu.

Składnia

-- Aggregate Function Syntax
MAX ( expression )

-- Analytic Function Syntax
MAX ( expression ) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])

Argumenty

expression

Jest stałą, nazwą kolumny lub funkcją oraz dowolną kombinacją operatorów arytmetycznych. Funkcje agregujące i podzapytania nie są dozwolone.

Wartość MAX może być używana z kolumnami Bit, Bigint, Datetime i Float.

Max może być również używany z NVARCHAR(MAX) z następującym zachowaniem:

  • Jeśli kolumna nie została jawnie rzutowania na NVARCHAR(MAX), funkcja MAX spróbuje niejawnie rzutować ją na zmienną FLOAT. Niezgodność typów spowoduje błędy.
  • Jeśli kolumna została jawnie rzutowana na wartość NVARCHAR(MAX) przy użyciu funkcji CAST lub TRY_CAST, zostanie zwrócona maksymalna wartość ciągu.

OVER ([<PARTITION BY klauzula LIMIT DURATION klauzuli>>< [<KLAUZULA> WHEN]]

Określa grupę wierszy, dla których jest stosowana wartość MAX. Klauzula PARTITION BY określa, że wiersze z tym samym kluczem partycji zostaną zgrupowane razem. Klauzula LIMIT DURATION określa, ile historii jest zawarta w grupie. Klauzula WHEN określa warunek logiczny dla wierszy do ujęć w grupie. Zobacz klauzulę OVER , aby uzyskać więcej informacji na temat użycia.

Typy zwracane

Zwraca wartość taką samą jak wyrażenie.

Przykłady

W przypadku składni agregującej zmniejszymy liczbę wierszy. W tym miejscu wybieramy maksymalną opłatę za każdą godzinę:

SELECT
  TollId,
  System.Timestamp() AS WindowEnd,
  MAX(Toll) AS MaxFare
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 maksymalnej w ciągu ostatniej godziny:

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

Zobacz też