MAKS

✅ Azure Stream Analytics ✅ Fabric Eventstream

Mengembalikan nilai maksimum dalam ekspresi.

Sintaksis

-- Aggregate Function Syntax
MAX ( expression )

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

Argumen

ekspresi

Adalah konstanta, nama kolom, atau fungsi, dan kombinasi operator aritmatika apa pun. Fungsi dan subkueri agregat tidak diizinkan.

MAX dapat digunakan dengan kolom Bit, Bigint, Datetime, dan Float.

MAX juga dapat digunakan dengan NVARCHAR(MAX) dengan perilaku berikut:

  • Jika kolom tidak secara eksplisit ditransmisikan ke NVARCHAR(MAX), maka MAX akan mencoba secara implisit mentransmisikannya ke FLOAT. Ketidakcocokan jenis akan mengakibatkan kesalahan.
  • Jika kolom secara eksplisit ditransmisikan ke NVARCHAR(MAX) dengan menggunakan CAST atau TRY_CAST, maka nilai string maksimal akan dikembalikan.

OVER ([<klausa><PARTITION BY LIMIT DURATION clause> [<WHEN clause>]]

Menentukan grup baris tempat MAX diterapkan. Klausa PARTITION BY menentukan bahwa baris dengan kunci partisi yang sama akan dikelompokkan bersama-sama. Klausul LIMIT DURATION menentukan berapa banyak riwayat yang disertakan dalam grup. Klausa WHEN menentukan kondisi boolean untuk baris yang akan disertakan dalam grup. Lihat klausa OVER untuk detail selengkapnya tentang penggunaan.

Jenis Kembalian

Mengembalikan nilai yang sama dengan ekspresi.

Contoh

Dengan sintaks agregat, kita akan mengurangi jumlah baris. Di sini kita memilih tarif maksimum di setiap Tol setiap jam:

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

Dengan sintaks analitik, kami mempertahankan kardinalitas input. Di sini untuk setiap kendaraan yang melalui tol, kami membandingkan tarif saat ini dengan maksimum selama satu jam terakhir:

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

Lihat Juga