計算同時購買兩個產品的客戶非重複計數:
同時購買產品1、2的客戶非重複計數,我們需要知道購買產品1的客戶列表與購買產品2的客戶列表:
然後計算這兩個表的交集:
INTERSECT函式表1與表2的交集結果是這樣的:
表2與表1的交集是這個結果:
就是說INTERSECT函式中引數的順序不同結果也有可能會不同,這個特性正適合做非重複計數,如果就是單純計數,反而會不準確。
我們把上面所有的內容放到度量值中:
非重複計數度量值 = COUNTROWS ( DISTINCT ( INTERSECT ( SELECTCOLUMNS ( FILTER ( '表', '表'[產品] = "1" ), "ID", [ID] ), SELECTCOLUMNS ( FILTER ( '表', '表'[產品] = "2" ), "ID", [ID] ) ) ))
其實也不是不能準確計算重複技術,只不過要把這兩個交集的結果再合併起來,然後計數:
重複計數度量值 = COUNTROWS ( UNION( INTERSECT ( SELECTCOLUMNS ( FILTER ( '表', '表'[產品] = "1" ), "ID", [ID] ), SELECTCOLUMNS ( FILTER ( '表', '表'[產品] = "2" ), "ID", [ID] ) ), INTERSECT ( SELECTCOLUMNS ( FILTER ( '表', '表'[產品] = "2" ), "ID", [ID] ), SELECTCOLUMNS ( FILTER ( '表', '表'[產品] = "1" ), "ID", [ID] ) ) ))
又或者我們單獨每個表計數然後相加,結果也是一樣的。
今天我們講的是兩個表取交集,INTERSECT函式,這個函式的引數是兩個表,或者是表的表示式,這兩個表的順序不同,結果會不同,通常是以第一個表中的行為基準取交集。
最新評論