dcountif() (集計関数)
適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
がtrue
に評価される行のexprの個別の値の数を推定します。
Null 値は無視され、計算には考慮されません。
Note
この関数は、summarize 演算子と組み合わせて使用します。
構文
dcountif
(
expr, predicate, [,
accuracy])
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
expr | string |
✔️ | 集計計算に使用される式。 |
述語 | string |
✔️ | 行のフィルター処理に使用される式。 |
精度 | int |
速度と精度の間の制御。 指定しない場合、既定値は 1 です。 サポートされている値に関する推定精度を参照してください。 |
返品
がtrue
に評価される行のexprの個別の値の数の推定値を返します。
ヒント
すべての行が Predicate
式を渡す場合、またはどの行も渡さない場合、dcountif()
がエラーを返す可能性があります。
例
以下の例では、各州で発生した破滅的な嵐の事象の種類の数を示します。
StormEvents
| summarize DifferentFatalEvents=dcountif(EventType,(DeathsDirect + DeathsIndirect)>0) by State
| where DifferentFatalEvents > 0
| order by DifferentFatalEvents
表示される結果テーブルには、最初の 10 行のみが含まれます。
都道府県 | DifferentFatalEvents |
---|---|
CALIFORNIA | 12 |
テキサス州 | 12 |
オクラホマ | 10 |
ILLINOIS | 9 |
KANSAS | 9 |
NEW YORK | 9 |
ニュージャージー | 7 |
WASHINGTON | 7 |
ミシガン | 7 |
MISSOURI | 7 |
... | ... |
推定精度
この関数では、セット カーディナリティの確率的推定を行う 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 シグマ未満の相対エラーになります。
次の図は、サポートされているすべての精度設定の相対的な推定誤差の確率分布関数をパーセントで示したものです。