Sdílet prostřednictvím


MIN (Azure Stream Analytics)

Vrátí minimální hodnotu ve výrazu.

Syntaxe

-- Aggregate Function Syntax
MIN ( expression )

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

Argumenty

expression

Je konstanta, název sloupce nebo funkce a libovolná kombinace aritmetických operátorů. Agregační funkce a poddotaz nejsou povoleny.

Min lze použít se sloupci Bit, Bigint, Datetime a Float.

Funkci MIN lze použít také s NVARCHAR(MAX) s následujícím chováním:

  • Pokud sloupec nebyl explicitně přetypován na NVARCHAR(MAX), pak se funkce MIN pokusí implicitně přetypovat hodnotu FLOAT. Neshody typů budou mít za následek chyby.
  • Pokud byl sloupec explicitně přetypován na NVARCHAR(MAX) pomocí cast nebo TRY_CAST, vrátí se minimální hodnota řetězce.

OVER ([<PARTITION BY klauzule><LIMIT DURATION klauzule> [<WHEN klauzule>]]

Určuje skupinu řádků, na které se používá min. Klauzule PARTITION BY určuje, že řádky se stejným klíčem oddílu budou seskupené dohromady. Klauzule LIMIT DURATION určuje, kolik historie je součástí skupiny. Klauzule WHEN určuje logickou podmínku pro zahrnutí řádků do skupiny. Další podrobnosti o využití najdete v klauzuli OVER .

Návratové typy

Vrátí stejnou hodnotu jako výraz.

Příklady

Pomocí agregační syntaxe snížíme počet řádků. Tady vybereme minimální jízdné u každé placené služby každou hodinu:

SELECT
  TollId,
  System.Timestamp() AS WindowEnd,
  MIN(Toll) AS MinFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
  TollId,
  TumblingWindow(hour,1)

Díky analytické syntaxi udržujeme vstupní kardinalitu. Tady pro každé vozidlo procházející mýtem porovnáme aktuální jízdné s minimem za poslední hodinu:

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

Viz také