Bagikan melalui


dcount() (fungsi agregasi)

Mengembalikan perkiraan guna jumlah nilai berbeda yang diambil oleh ekspresi skalar di dalam grup ringkasan.

Nilai null diabaikan dan tidak memperhitungkan perhitungan.

Catatan

Fungsi agregasi dcount() terutama berguna untuk memperkirakan kardinalitas set besar. Ini memperdagangkan akurasi untuk performa, dan dapat mengembalikan hasil yang bervariasi di antara eksekusi. Urutan input dapat memengaruhi output-nya.

Catatan

Fungsi ini digunakan bersama dengan ringkasan operator.

Sintaks

dcount(expr[, akurasi])

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Tipe Wajib Deskripsi
expr string ✔️ Input yang nilainya berbeda akan dihitung.
ketepatan int Nilai yang menentukan akurasi estimasi yang diminta. Nilai defaultnya adalah 1. Lihat Akurasi estimasi untuk nilai yang didukung.

Mengembalikan

Mengembalikan perkiraan jumlah nilai kedaluwarsa yang berbeda dalam grup.

Contoh

Contoh ini menunjukkan jumlah jenis peristiwa badai yang terjadi di setiap status.

StormEvents
| summarize DifferentEvents=dcount(EventType) by State
| order by DifferentEvents

Tabel hasil yang ditampilkan hanya menyertakan 10 baris pertama.

Provinsi DifferentEvents
TEXAS 27
CALIFORNIA 26
PENNSYLVANIA 25
GEORGIA 24
ILLINOIS 23
MARYLAND 23
CAROLINA UTARA 23
MICHIGAN 22
FLORIDA 22
OREGON 21
KANSAS 21
... ...

Akurasi estimasi

Fungsi ini menggunakan varian dari algoritma HyperLogLog (HLL), yang melakukan estimasi stokastik dari kardinalitas yang ditetapkan. Algoritma ini menyediakan "kenop" yang dapat digunakan untuk menyeimbangkan akurasi dan waktu eksekusi per ukuran memori:

Akurasi Kesalahan (%) Jumlah entri
0 1.6 212
1 0,8 214
2 0,4 216
3 0.28 217
4 0,2 218

Catatan

Kolom "jumlah entri" adalah jumlah penghitung 1 byte dalam implementasi HLL.

Algoritma ini mencakup beberapa ketentuan untuk melakukan penghitungan sempurna (zero error), jika kardinalitas set berukuran cukup kecil:

  • Ketika tingkat akurasi adalah 1, 1000 nilai dikembalikan
  • Ketika tingkat akurasi adalah 2, 8000 nilai dikembalikan

Batas kesalahan bersifat probabilistik, bukan batas teoritis. Nilainya adalah simpangan baku dari distribusi kesalahan (sigma), dan 99,7% estimasi akan memiliki kesalahan relatif di bawah 3 x sigma.

Gambar berikut menunjukkan fungsi distribusi peluang dari kesalahan estimasi relatif, dalam persentase, untuk semua pengaturan akurasi yang didukung:

Grafik memperlihatkan distribusi kesalahan hll.