dcount() (集計関数)

概要グループ内の、スカラー式によって取得された個別の値の概数を計算します。

Null 値は無視され、計算には考慮されません。

Note

dcount() 集計関数は、主に大規模なセットのカーディナリティを推定するために役立ちます。 パフォーマンスの精度を評価し、実行によって異なる結果が返される場合があります。 入力の順序が出力に影響を与える可能性があります。

Note

この関数は、summarize 演算子と組み合わせて使用します。

構文

dcount(expr[,accuracy])

構文規則について詳しく知る。

パラメーター

名前 必須 説明
expr string ✔️ 個別の値をカウントする入力。
精度 int 要求された推定精度を定義する値。 既定値は 1 です。 サポートされている値に関する推定精度を参照してください。

戻り値

グループ内の expr の個別の値の数の推定値を返します。

以下の例では、各州で発生した嵐の事象の種類の数を示します。

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

表示される結果テーブルには、最初の 10 行のみが含まれます。

State DifferentEvents
テキサス州 27
CALIFORNIA 26
ペンシルベニア 25
GEORGIA 24
ILLINOIS 23
メリーランド 23
ノースカロライナ 23
ミシガン 22
FLORIDA 22
オレゴン 21
KANSAS 21
... ...

推定精度

この関数では、セット カーディナリティの確率的推定を行う HyperLogLog (HLL) アルゴリズム の異形が使用されます。 アルゴリズムには、メモリ サイズごとの精度と実行時間のバランスを取るために使用できる "ノブ" が用意されています。

精度 エラー (%) エントリ数
0 1.6 212
1 0.8 214
2 0.4 216
3 0.28 217
4 0.2 218

Note

"エントリ数" 列は、HLL 実装における 1 バイト カウンターの数です。

セット カーディナリティが十分に小さい場合、アルゴリズムには完璧なカウント (ゼロ エラー) を行うためのいくつかの条件が含まれています。

  • 精度レベルが 1 の場合は 1,000 個の値を返す
  • 精度レベルが 2 の場合は 8,000 個の値を返す

誤り限界は確率的であり、理論限界ではありません。 値は、誤差分布の標準偏差 (シグマ) であり、推定量 の 99.7% は 3 x シグマ未満の相対エラーになります。

次の図は、サポートされているすべての精度設定の相対的な推定誤差の確率分布関数をパーセントで示したものです。

hll エラー分布を示すグラフ。