在学习PowerBI中,我们用到最多的是度量值,度量值是一个值,所以它用的是生成值的函数,比如SUM、COUNT等,但在度量值表达式中,可能还会用到表,来进行更灵活的计算。
比如这个表达式会计算销售额,SUMX ( Sales, Sales[Quantity] * Sales[Net Price] )
其中SUMX的第一个参数就是一张表,这个公式会扫描 Sales 表的每一行,分别计算出来以后再相加,这就是迭代的效果。
并且第一个参数表,可以是模型中的一张表,还可以是用表函数来生成的虚拟表。
比如:SUMX ( FILTER(Sales,'Sales'[Quantity] >5), Sales[Quantity] * Sales[Net Price] )
通常,不能将表函数的结果用作度量值或计算列的值。度量值和计算列都要求表达式是标量值。
但可以用表函数来生成一个新的计算表,值由 dax 表达式确定的,而不是从数据源加载。比如上面的例子中,
FILTER(Sales,'Sales'[Quantity] >5)
就会返回一张表,可以在模型中看到。
计算表和计算列一样,刷新时计算,并储存在模型中,所以会消耗内存,非必须情况下,尽量不使用。
《The Definitive Guide to DAX》学习笔记
采悟 @ PowerBI星球
网友评论