filter - DAX 查询(使用 FIlter 和 MAX 函数),计算最近运行 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)
-> 删除所有过滤器意味着从完整表中取日期从最小值到最大值,即 2018 年 1 月 1 日至 2021 年 12 月 30 日之间Dates[Date]>MAX(Dates[Date]) -30
->“从表中的当前行减去 30 天的总销售额”。例如,如果 DAX 计算是在 2018 年 1 月 30 日,那么它会考虑从 2018 年 1 月 1 日到 2018 年 1 月 30 日的所有总销售额那么为什么我们需要提到另一个过滤器
Dates[Date] <= MAX(Dates[Date] )
呢?
在此先感谢您的时间
问候苏米特马利克
解决方案
总结您主要关心的似乎是第 (3) 点
为什么我们需要提到另一个过滤器 Dates[Date] <= MAX(Dates[Date] )?
您的疑问是正确的,如果数据是干净的,则不需要定义该上限过滤器,因为理论上考虑 30 天前的销售额,今天之后不应该有销售额。
不幸的是,通常数据是脏的,将来可能会有销售。因此,定义上限是避免此类脏数据问题的最佳实践。请记住,在软件工程中,您在编程时会考虑最坏的情况,因此,定义上限并没有害处:)
推荐阅读
- electron - 有没有办法从 ELECTRON 的安装程序向导中捕获子进程事件?
- functional-programming - 基于属性的测试的不确定性是否会损害构建的可重复性?
- node.js - “此版本的 CLI 仅与 Angular 版本 [] 兼容。但找到了版本 []
- node.js - react.JS graphql 如何使用相同的查询来发送文件和表单数据?
- javascript - 创建元素后如何设置元素高度的包装?
- python - 使用 Matplotlib Python 改进时间序列子图
- windows - Powershell:如何将 get-netadapter 命令的输出格式化为带有分隔符的单个列表/行
- azure - 显示 Azure 标记的 System.Collections.Generic.Dictionary`2[System.String,System.String] 的导出 CSV?
- python - Wagtail 浏览器同步设置教程
- pine-script - 在进入/退出问题上配置止盈、止损和三角形