共用方式為


dcount_intersect 外掛程式

適用於: ✅Microsoft網狀架構Azure 數據總管

根據 hll [2..16] 範圍內的 N 值計算 N 集合之間的交集,並傳回 N dcount 個值。 外掛程式是使用運算子叫 evaluate 用的。

語法

T | evaluatedcount_intersect(hll_1hll_2, [ , hll_3, ...])

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
T string ✔️ 輸入表格式表達式。
hll_i 使用函式計算hll()的集合 Si 值。

傳回

傳回具有 N dcount 個值的數據表(每個數據行,代表集合交集)。 數據行名稱為 s0、s1、...(直到 n-1)。

指定集合 S1、S2、.。 Sn 傳回值將代表相異計數:
S1
S1 ∩ S2
S1 ∩ S2 ∩ S3
... ,
S1 ∩ S2 ∩...∩ Sn

範例

// Generate numbers from 1 to 100
range x from 1 to 100 step 1
| extend isEven = (x % 2 == 0), isMod3 = (x % 3 == 0), isMod5 = (x % 5 == 0)
// Calculate conditional HLL values (note that '0' is included in each of them as additional value, so we will subtract it later)
| summarize hll_even = hll(iif(isEven, x, 0), 2),
            hll_mod3 = hll(iif(isMod3, x, 0), 2),
            hll_mod5 = hll(iif(isMod5, x, 0), 2) 
// Invoke the plugin that calculates dcount intersections         
| evaluate dcount_intersect(hll_even, hll_mod3, hll_mod5)
| project evenNumbers = s0 - 1,             //                             100 / 2 = 50
          even_and_mod3 = s1 - 1,           // gcd(2,3) = 6, therefor:     100 / 6 = 16
          even_and_mod3_and_mod5 = s2 - 1   // gcd(2,3,5) is 30, therefore: 100 / 30 = 3 

輸出

evenNumbers even_and_mod3 even_and_mod3_and_mod5
50 16 3