1. 程式人生 > >dax-新老會員的識別

dax-新老會員的識別

dax 會員 sha 清晰 重新整理 公式 when mar c99

突然想起來之前有看過新老會員的識別,原來都是用mysql寫(先寫出會員購買首次日期,再去匹配再case when寫好),到dax裏一個公式就可以解決,感覺清清爽爽。
還聽取群裏老師的意見,把退貨的條件也考慮進去,重新修改了公式:
技術分享圖片
裏面用了earlier函數,這個函數比較抽象。
技術分享圖片
重點是之前的值,有點不清晰,之前是大還是小,高還是低。
(根據用下來的經驗,感覺其實earlier其實是有點取最大值的意思。)
看一下計算結果來反推ealier。
技術分享圖片
公式是在filter篩選後的表中求大於0的金額和:
A0001在2018-7-2是結果是5,2018-5-2是空的,金額分別是5和-5,那很容易看出-5那條記錄不符合大於0的條件,最後結果計算的其實就是金額5那條記錄。
因為是2018-5-2且大於0的記錄,所以earlier([日期])>[日期]等同於2018-5-2>2018-7-2。
wait……感覺哪裏不對?平時都是2018-5-2 < 2018-7-2,怎麽???
在pp裏寫兩個日期比一下大小看看:
技術分享圖片
是T,2018-5-2 > 2018-7-2,就是這麽神奇,那這樣就完全可以理解了。
earlier([會員號])=[會員號],不用說A0001=A0001.
雖然老師說邏輯要重新整理,但目前看起來這樣公式暫時沒有問題。
業務上來說第一次會員金額一定是>0,後面出現的無論是再次銷售還是退貨,都默認是老會員,所以金額大於0的條件沒毛病。
over,有點亂。

dax-新老會員的識別