17
我曾捡到一束光,日落时还给了太阳
做过DAX性能优化的应该都知道,在做优化时有一个很常用的方法就是先聚合后迭代,这样当表的基数很大时,可以几何倍的减少迭代次数。虽然今天这个例子与性能优化无关,却也是应用的这种思路。
先来看下数据,value列存的是每个group的总值,也就说A的总值就是10。
如果我们还是按常规的方式计算Value,总计就会是140,事实上总计应该是10+15+20+10=55
value (error) = SUM( '表'[value])
前面已经介绍过了性能优化时常用的一个思路,放到这里其实是需要对数据去重
-
先按group进行聚合,然后增加@value列,
-
在计算MAX(‘表’[value] )时,外层需要包上CALCULATE进行上下文转换
-
最后对生成的中间进行迭代汇总计算
Value =
var GroupValue =
ADDCOLUMNS(