EVALUATE 是执行查询必须的 DAX 语句。EVALUATE 用于表表达式之前,并返回该表达式的结果。而且一个或多个 EVALUATE 前面可以添加 DEFINE 关键字,用来定义本地表、列、度量值和变量,所有这些本地定义的可用范围覆盖与其一起执行的整个 EVALUATE 语句。
-- 定义部分(可选) [DEFINE { MEASURE <tableName>[<name>] = <expression> } { VAR <name> = <expression>}] -- 查询表达式 EVALUATE <table> -- 结果修饰符(可选) [ORDER BY {<expression> [{ASC | DESC}]}[, …] [START AT {<value>|<parameter>} [, …]]]
一条 EVALUATE 语句分为三个部分:
- 定义部分:由 DEFINE 关键字引入,它包括表、列、变量和度量值等局部实体的定义。一个 DEFINE 可以覆盖一个或多个查询
- 查询表达式:由 EVALUATE 关键字引入,它包含要计算的表表达式,并返回其结果。查询表达式可以有多个,每个查询表达式由 EVALUATE 引入,每个查询表达式都有自己的一组结果修饰符
- 结果修饰符:EVALUATE 的一个可选的附加部分,由关键字 ORDER BY 引入。它可以对结果的排序和定义要返回的行(使用 START AT 定义起始点)
其中第一部分和第三部分是可选项。因此,你可以直接使用 EVALUATE 来生成查询。例如,最简单的查询是从现有表中检索所有列和行:
EVALUATE Product
包含完整的三个部分的查询示例:
DEFINE VAR MinimumAmount = 2000000 VAR MaximumAmount = 8000000 EVALUATE FILTER ( ADDCOLUMNS ( SUMMARIZE ( Sales, 'Product'[Category] ), "CategoryAmount", [Sales Amount] ), AND ( [CategoryAmount] >= MinimumAmount, [CategoryAmount] <= MaximumAmount ) ) ORDER BY [CategoryAmount]
关于 EVALUATE 的更多内容,可以参考其他 DEFINE、ORDER BY 等其他查询关键字。
说点什么