我在SSAS中有一个表格,其中包含股票日期,SKU和其他属性 .
+----------+-----+
| Date | SKU |
+----------+-----+
| 20180701 | 1 |
+----------+-----+
| 20180701 | 2 |
+----------+-----+
| 20180701 | 3 |
+----------+-----+
| 20180702 | 1 |
+----------+-----+
| 20180702 | 3 |
+----------+-----+
| 20180703 | 3 |
+----------+-----+
每天我想通过计算不同的sku值来聚合数据:
CntSKU:= DISTINCTCOUNT([SKU])
但是,每个月我想总结每日 Value 并将它们除以天数(比如几天的平均值) . DAX似乎并不那么困难:
AvgSKU:= DIVIDE(
sumx(SUMMARIZE(Table;Table[Date];"CntSKU";DISTINCTCOUNT(Table[SKU]));[CntSKU])
;DISTINCTCOUNT(Table[Date])
;BLANK()
)
但是表现非常糟糕 . 一个月,每天CntSKU的查询时间约为7.2秒 . AvgSKU测量大约需要9.5秒来计算 . 对于一对中的更大数据集或Excel中的几个计算,旋转这个计算时间是一个更致命的杠杆 .
随后的问题是:有更好的方法来计算AvgSKU - 测量吗?
2 回答
也许我误解了你的目标,但似乎你的Dax公式过于复杂 . 我会尝试这些措施:
是的,在研究了一些之后我同意我的DAX是愚蠢的或者只是“过于复杂”:-)我没有考虑到上下文转换的力量 .
我修改后的DAX就像一个魅力 .
就是这样 .