码迷,mamicode.com
首页 > 其他好文 > 详细

dax-新老会员的识别

时间:2018-07-26 19:58:31      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:log   匹配   cto   over   lte   问题   最大值   技术   images   

突然想起来之前有看过新老会员的识别,原来都是用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-新老会员的识别

标签:log   匹配   cto   over   lte   问题   最大值   技术   images   

原文地址:http://blog.51cto.com/11729955/2150686

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!