不同值的总和不正确

时间:2018-07-11 13:00:42

标签: dax ssas-tabular

我在SSAS中有一个表格表,其中包含具有库存日期,SKU和其他属性的库存。

+----------+-----+
| Date     | SKU |
+----------+-----+
| 20180701 | 1   |
+----------+-----+
| 20180701 | 2   |
+----------+-----+
| 20180701 | 3   |
+----------+-----+
| 20180702 | 1   |
+----------+-----+
| 20180702 | 3   |
+----------+-----+
| 20180703 | 3   |
+----------+-----+

我想每天通过计算不同的sku值来汇总数据:

CntSKU:= DISTINCTCOUNT([SKU])

但是,我想每月将每天的值相加并除以天数(例如几天的平均值)。 DAX似乎并不那么困难:

 AvgSKU:= DIVIDE(
            sumx(SUMMARIZE(Table;Table[Date];"CntSKU";DISTINCTCOUNT(Table[SKU]));[CntSKU])
            ;DISTINCTCOUNT(Table[Date])
            ;BLANK()
            )

尽管如此,性能还是很差的。 一个月内,每天CntSKU的查询时间约为7.2秒。 AvgSKU量度大约需要9.5秒才能计算出来。对于一对夫妇中较大的数据集或Excel Pivot中的多个计算,此计算时间是致命的杠杆。

enter image description here

随后的问题是:是否有更好的方法来计算AvgSKU-度量?

2 个答案:

答案 0 :(得分:1)

也许我误解了您的目标,但看来您的Dax公式过于复杂。我会尝试这些措施:

SKU Count = DISTINCTCOUNT(Table[SKU])

Date Count = DISTINCTCOUNT(Table[Date])

SKU Count per Date = DIVIDE( [SKU Count], [Date Count])

答案 1 :(得分:0)

是,在研究了更多内容之后,我同意我的DAX是愚蠢的,或者只是“过分复杂” :-) 我没有考虑上下文转换的力量。

我修改后的DAX就像一个吊饰。

#primary_nav_wrap ul li>ul {
    z-index: 999;
}

就是这样。