Bagikan melalui


bin()

Berlaku untuk: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Membulatkan nilai ke kelipatan integer dari ukuran bin tertentu.

Sering digunakan dalam kombinasi dengan summarize by .... Jika Anda memiliki kumpulan nilai yang tersebar, nilai tersebut akan dikelompokkan ke dalam sekelompok nilai tertentu yang lebih kecil.

Fungsi bin() dan floor() setara

Sintaks

bin(value,roundTo)

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Tipe Wajib Deskripsi
value int, long, real, timespan, atau datetime ✔️ Nilai yang akan dibulatkan ke bawah.
roundTo int, long, real, atau timespan ✔️ "Ukuran bin" yang membagi nilai.

Mengembalikan

Kelipatan roundTo terdekat di bawah value. Nilai null, ukuran bin null, atau ukuran bin negatif akan menghasilkan null.

Contoh

Bin numerik

print bin(4.5, 1)

Hasil

print_0
4

Kelipatan rentang waktu

print bin(time(16d), 7d)

Hasil

print_0
14:00:00:00

Keramaian tanggalwaktu

print bin(datetime(1970-05-11 13:45:07), 1d)

Hasil

print_0
1970-05-11T00:00:00Z

Pad tabel dengan bin null

Ketika ada baris untuk bin tanpa baris yang sesuai dalam tabel, sebaiknya pad tabel dengan bin tersebut. Kueri berikut melihat peristiwa badai angin kencang di California selama seminggu pada bulan April. Namun, tidak ada peristiwa pada beberapa hari.

let Start = datetime('2007-04-07');
let End = Start + 7d;
StormEvents
| where StartTime between (Start .. End)
| where State == "CALIFORNIA" and EventType == "Strong Wind"
| summarize PropertyDamage=sum(DamageProperty) by bin(StartTime, 1d)

Hasil

StartTime KerusakanProperti
2007-04-08T00:00:00Z 3000
2007-04-11T00:00:00Z 1000
2007-04-12T00:00:00Z 105000

Untuk mewakili minggu penuh, kueri berikut mengalihkan tabel hasil dengan nilai null untuk hari yang hilang. Berikut adalah penjelasan langkah demi langkah tentang prosesnya:

  1. union Gunakan operator untuk menambahkan lebih banyak baris ke tabel.
  2. Operator range menghasilkan tabel yang memiliki satu baris dan kolom.
  3. Operator mv-expand di range atas fungsi membuat baris sebanyak ada bin antara StartTime dan EndTime.
  4. Gunakan PropertyDamage dari 0.
  5. Operator summarize mengelompokkan bin dari tabel asli ke tabel yang dihasilkan oleh union ekspresi. Proses ini memastikan bahwa output memiliki satu baris per bin yang nilainya nol atau jumlah asli.
let Start = datetime('2007-04-07');
let End = Start + 7d;
StormEvents
| where StartTime between (Start .. End)
| where State == "CALIFORNIA" and EventType == "Strong Wind"
| union (
    range x from 1 to 1 step 1
    | mv-expand StartTime=range(Start, End, 1d) to typeof(datetime)
    | extend PropertyDamage=0
    )
| summarize PropertyDamage=sum(DamageProperty) by bin(StartTime, 1d)

Hasil

StartTime KerusakanProperti
2007-04-07T00:00:00Z 0
2007-04-08T00:00:00Z 3000
2007-04-09T00:00:00Z 0
2007-04-10T00:00:00Z 0
2007-04-11T00:00:00Z 1000
2007-04-12T00:00:00Z 105000
2007-04-13T00:00:00Z 0
2007-04-14T00:00:00Z 0