目标
常规的订单明细表下,已知客户和交易日期,求同一客户的订单间隔
思路
- 分解为第一步:求该客户上一次交易时间,第二步:和本次交易时间求差(绝对值)
- 求该客户上一次交易时间:把该客户所有早于本次的交易时间取出来,求最大值
主要代码
新建列1:客户上一次交易时间
客户上一次交易时间=
VAR E_date ='表'[交易日期].[Date]
VAR CUST ='表'[客户标识符]
RETURN
MAXX(
FILTER('表', CUST='表'[客户标识符] && E_date > '表'[交易日期].[Date]),
'表'[交易日期].[Date])
这里客户标识符也可以按需求换作产品blabla…
新建列2:时间间隔
用 datediff 即可
(似乎只有一次交易或最早的交易、没有“上一次交易”的话,求时间间隔也会自动留空,并不影响;在汇总求订单间隔平均值的时候我还没有验证有没有问题。。)
代码主要参考了这篇,思路参考了SQL订单间隔计算的一些帖子。初学小菜鸟瞎琢磨出来的,不知道有没有问题,还请大神们指点 Orz