DAX从入门到精通 3-3-1 使用表表达式

使用表表达式

本章的开头,你可以看到,我们通常会使用表表达式作为DAX的参数。典型的使用方法是在函数中迭代一个表,对表中的每个行进行计算。例如,下面的sumx,所有其他以x为结尾的聚合函数都是这样的模式:

[Sales Amount] :=
SUMX (
Sales,
Sales[Quantity] * Sales[Unit Price]
)

可以用表函数来替代sales表,例如,可以使用filer来筛选销售数量大于1的记录:

[Sales Amount Multiple Items] :=
SUMX (
FILTER (
Sales,
Sales[Quantity] > 1
),
Sales[Quantity] * Sales[Unit Price]
)

在计算列中,可以使用relatedtable函数,从一方获取多方的表格。例如,下面的计算列保存在product表中,计算了各产品的销售额。

Product[Product Sales Amount] =
SUMX (
RELATEDTABLE ( Sales ),
Sales[Quantity] * Sales[Unit Price]
)

关于relatedtable表函数,在第四章会有详细的介绍。
表格函数中可以嵌套表格函数。例如,下面的计算列只计算了销售记录大于1的销售情况:

Product[Product Sales Amount Multiple Items] =
SUMX (
FILTER (
RELATEDTABLE ( Sales ),
Sales[Quantity] > 1
),
Sales[Quantity] * Sales[Unit Price]
)

当嵌套表格函数的时候,DAX对最内部的函数首先处理,然后逐一向外。这个不要和dax处理参数的顺序弄混了。
注意:
后面我们会看到,嵌套的执行顺序可能是您对语句结果产生疑问的源头,因为calculatetable的执行顺序和filter不一样。下一节,我们会学习filter,第五章,我们会学习calculatable。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容