Sdílet prostřednictvím


MIN

✅Eventstream prostředků infrastruktury 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

výrazu

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

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

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

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

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

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

Návratové typy

Vrátí hodnotu stejnou jako výraz.

Příklady

S agregační syntaxí snížíme počet řádků. Tady vybereme minimální jízdné na každé placené po každé hodině:

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

Pomocí syntaxe analýzy udržujeme vstupní kardinalitu. Tady pro každé vozidlo procházející bezplatnou linkou porovnáme aktuální jízdné s minimálním časem 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é