创建计算表

适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

计算表 是一个基于 DAX 查询或表达式的计算对象,派生自相同模型中的所有或部分其他表。

计算表可以解决的常见设计问题是在特定的上下文中显示角色扮演维度,以便将其作为查询结构在客户端应用程序中公开。 你可能还记得,角色扮演维度只是多个上下文中出现的表 -- 一个经典示例是 Date 表,根据外键关系,显示为 OrderDate、ShipDate 或 DueDate。 通过为 ShipDate 显式创建计算表,将获得可用于查询的独立表,该表与任何其他表一样完全可操作。 另一个用途包括配置其他现有表中列的筛选行集、子集或超集。 这样可以在创建表的变体以支持特定方案时保持原始表不变。

要充分利用计算表,你至少需要知道几个 DAX 表达式。 在处理表的表达式时,了解计算表包含具有 DAXSource 的单个分区可能会有所帮助,其中表达式是 DAX 表达式。
该表达式返回的每个列均有一个 CalculatedTableColumn,其中 SourceColumn 是返回的列的名称(类似于非计算表中的 DataColumn)

在创建计算表之前,必须至少存在一个表。 如果要将计算表创建为独立的计算表对象,可以先从文件数据源导入 (csv、xls、xml) 来创建表。 从中导入的文件可以具有单个列和单个值。 然后,可以隐藏该表。

如何创建计算表

  1. 首先,验证表格模型的兼容性级别是否为 1200 或更高。 你可以在 SSDT 中检查模型的 兼容性级别 属性。

  2. 切换到数据视图。 不能在关系图视图中创建计算表。

  3. 选择“ >”“新建计算表”。

  4. 键入或粘贴 DAX 表达式, (参阅下文,了解) 的一些想法。

  5. 命名此表。

  6. 创建与模型中其他表之间的关系。 如需此步骤的帮助,请参阅 在两个表之间创建关系

  7. 在模型的计算或表达式中引用此表,或者在专项数据浏览中使用 在 Excel 中分析

复制角色扮演维度

在公式栏中输入 DAX 公式获取另一个表的副本。 填充计算表之后,为其提供一个描述性名称,然后设置使用特定于角色的外键的关系。 例如,在 Adventure Works 数据库中,你可以为 Due Date 创建计算表,并将 DueDateKey 用作与事实数据表的关系的基础。

=DimDate  

汇总或筛选

在“编辑栏”中,输入一个 DAX 表达式,该表达式筛选、汇总或以其他方式操作模型以包含所需行。 该示例按销售、颜色和货币进行分组。

=SUMMARIZECOLUMNS(DimProduct[Color]  
, DimCurrency[CurrencyName]   
, "Sales" , SUM(FactInternetSales[SalesAmount])  
)  

使用多个表中的列的超集

在公式栏中输入将来自多个表的列组合在一起的 DAX 表达式。 在这种情况下,查询输出会列出每种货币的产品类别。

=CROSSJOIN(DimProductCategory, DimCurrency)  

另请参阅

兼容性级别
Analysis Services 中 DAX) (数据分析表达式
了解表格模型中的 DAX