quickbi實現關聯度分析(復刻PowerBI展示)
PowerBI通過DAX創建度量值,可以比較輕松的實現不同產品的關聯度分析,即購物籃分析,但如果使用quickbi,則需要通過sql代碼創建一個數據集,然后再通過數據集制作圖表。
quickbi官方模板市場給出的購物籃分析和finebi官方5.1版本給出的可視化效果類似,但缺點在于無法查看不同日期下的關聯度情況,只能查看固定日期不同產品的的關聯度。
quickbi關聯分析模板:
這篇文章就以powerbi的思路通過quickbi來實現powerbi的動態實現效果。
PowerBI的效果展示:
quickbi的復刻效果展示:
部分樣例數據如圖:
實現思路:
第一步,計算各產品客戶數
SELECT?
t1.`產品名稱`,count(distinct?t1.`客戶ID`)?as?客戶數?
FROM?order_pbi t1
group?by?
t1.`產品名稱` ;
第二步,計算關聯產品客戶數???????
-- 產品B:公路自行車?
-- 產品A:客戶數?
-- 方法一:不到3秒?
SELECT?t1.`產品名稱`?as?產品B, t2.`產品名稱`?as?產品A,?COUNT(distinct t1.`客戶ID`)?AS?交叉客戶數
FROM?order_pbi t1
INNER?JOIN?order_pbi t2?ON?t1.客戶ID?= t2.客戶ID?and t1.`產品名稱`?<> t2.`產品名稱`
GROUP?BY?t1.`產品名稱`, t2.`產品名稱`;
-- 方法二:3秒以上
--?SELECT?p1.`產品名稱`?AS?產品A, p2.`產品名稱`?AS?產品B,?COUNT(DISTINCT?t1.`客戶ID`)?AS?交叉客戶數
--?FROM?order_pbi t1
--?JOIN?order_pbi t2?ON?t1.客戶ID?= t2.客戶ID?AND?t1.`產品ID`?<> t2.`產品ID`
--?JOIN?pz_product_pbi_view p1?ON?t1.`產品ID`?= p1.`產品ID`
--?JOIN?pz_product_pbi_view p2?ON?t2.`產品ID`?= p2.`產品ID`
--?GROUP?BY?p1.`產品名稱`, p2.`產品名稱`;
第三步,計算各產品A銷售額
SELECT?
t1.`產品名稱`,sum(t1.銷售金額)?as?銷售額?
FROM?order_pbi t1
group?by?
t1.`產品名稱` ;
第四步,計算關聯產品的銷售額
-- 第四步,計算關聯產品的銷售額
SELECT?t2.產品名稱?AS?產品A, t1.產品名稱?AS?產品B,?SUM(t1.銷售金額)?AS?交叉銷售額
FROM?order_pbi?AS?t1
INNER?JOIN?(
? ??SELECT?DISTINCT?`客戶ID`, 產品名稱
? ??FROM?order_pbi?
)?AS?t2?ON?t1.`客戶ID`?=?t2.`客戶ID`
?WHERE?t1.產品名稱?<>?t2.產品名稱
GROUP?BY?t1.產品名稱,t2.產品名稱;