DAX 查询(使用 FILter 和 MAX 函数),计算最近 运行 30 天的总销售额
DAX Query ( Using FIlter and MAX function ), calculate Total Sales for the last running 30 days
我是 DAX 的新手,遇到了如下度量,
30 Day Running Total = CALCULATE([Total Sales],
FILTER (ALL (Dates), Dates[Date]>(Dates[Date]) -30 && Dates[Date] <= (Dates[Date] )))
即以累积方式计算2018年1月1日至2021年12月30日的数据最近30天的总销售额,我无法理解上述指标
我的理解如下,请告诉我哪里走错了方向
FILTER ( ALL(Dates)
-> 删除所有过滤器意味着从完整的 table 中从最小到最大获取日期,即在 2018 年 1 月 1 日至 2021 年 12 月 30 日之间
Dates[Date]>MAX(Dates[Date]) -30
-> "Takes Total Sales from the current row in table minus 30 days"。
例如,如果 DAX 计算是在 2018 年 1 月 30 日,那么它会考虑从 2018 年 1 月 1 日到 2018 年 1 月 30 日的所有总销售额
那为什么还要提另一个过滤器Dates[Date] <= MAX(Dates[Date] )
?
提前感谢您的宝贵时间
问候
苏米特·马利克
Sumit 你主要关心的似乎是第 (3) 点
why do we need to mention another filter Dates[Date] <= MAX(Dates[Date] )?
你的怀疑是正确的,如果数据是干净的,你不需要定义上限过滤器,因为理论上考虑30天前的销量,今天之后应该没有销量了。
不幸的是,数据通常是脏的,并且将来可能会 销售 。因此,定义上限是避免此类脏数据问题的最佳做法。请记住,在软件工程中,您在编程时会考虑最坏的情况,因此,定义上限并无害处:)
我是 DAX 的新手,遇到了如下度量,
30 Day Running Total = CALCULATE([Total Sales],
FILTER (ALL (Dates), Dates[Date]>(Dates[Date]) -30 && Dates[Date] <= (Dates[Date] )))
即以累积方式计算2018年1月1日至2021年12月30日的数据最近30天的总销售额,我无法理解上述指标
我的理解如下,请告诉我哪里走错了方向
FILTER ( ALL(Dates)
-> 删除所有过滤器意味着从完整的 table 中从最小到最大获取日期,即在 2018 年 1 月 1 日至 2021 年 12 月 30 日之间Dates[Date]>MAX(Dates[Date]) -30
-> "Takes Total Sales from the current row in table minus 30 days"。 例如,如果 DAX 计算是在 2018 年 1 月 30 日,那么它会考虑从 2018 年 1 月 1 日到 2018 年 1 月 30 日的所有总销售额那为什么还要提另一个过滤器
Dates[Date] <= MAX(Dates[Date] )
?
提前感谢您的宝贵时间
问候 苏米特·马利克
Sumit 你主要关心的似乎是第 (3) 点
why do we need to mention another filter Dates[Date] <= MAX(Dates[Date] )?
你的怀疑是正确的,如果数据是干净的,你不需要定义上限过滤器,因为理论上考虑30天前的销量,今天之后应该没有销量了。
不幸的是,数据通常是脏的,并且将来可能会 销售 。因此,定义上限是避免此类脏数据问题的最佳做法。请记住,在软件工程中,您在编程时会考虑最坏的情况,因此,定义上限并无害处:)