1697

SQL Server教程,公式,函数和示例中的DAX

原文:DAX in SQL Server Tutorial, Formulas, Functions and Examples

作者:Haroon Ashraf

概览

在本教程中,我们将学习如何创建DAX公式以从表格模型中获取所需信息,从简单计算到解决稍微复杂的分析问题。

我们将针对部署的表格模型运行DAX公式,以根据不同的要求找出不同类型的事实。

本教程主要关注创建简单DAX查询的技术,然后逐步创建稍微复杂的DAX查询。

本教程可以帮助学习者快速学习DAX,前提是学习者坚持制定DAX查询和/或公式构造的核心概念,我将讨论这些。

先决条件

本教程假定您熟悉表格数据模型(也称为Analysis Services数据库)的基本概念,并安装了以下软件组件:

  1. 表格分析服务器
  2. 带有Power Pivot的SQL Server数据工具(SSDT)或Excel

概览

本节是关于熟悉DAX以及在使用DAX之前必须了解的一些重要事项。

DAX代表什么?

DAX代表数据分析表达式,它是一种通过查询数据模型来促进数据分析的语言。

根据Microsoft的文档,DAX可帮助您根据(数据)模型中已有的数据创建新信息。此外,DAX可以解决分析问题,从创建基本计算到执行复杂的基于时间的数据比较。

DAX也称为公式语言函数式语言,其中需求表示为公式或函数。

学习DAX真的很重要吗?

根据Eugene Meidinger(数据库开发人员和DAX培训师)的说法,如果您正在与Microsoft进行BI(商业智能),那么您需要学习DAX。

DAX通常做什么?

DAX用于在(表格)数据模型的表中创建计算列或度量。

什么是计算列?

计算列是使用DAX查询添加到数据模型中的表的列。

例如,我们可以通过连接数据模型中表的First NameLast Name列来创建Full Name列 。

但是,我们需要DAX查询来连接两列。

措施是什么?

简单形式的度量是使用DAX公式创建的计算,例如通过汇总列中的所有销售金额值来创建总销售量度量。

DAX的用途

DAX用于以下Microsoft技术中的数据分析,比较和可视化:

Power BI

Power BI是Microsoft最新的云驱动商业智能技术,用于以报告和仪表板的形式分析和可视化数据。
基于power bi的dax查询

Analysis Services表格模型

表格模型是Analysis Services数据库,可以在内存中运行,也可以在针对数据分析进行优化的直接查询模式下运行,并部署到Analysis Services数据库服务器或Azure Analysis Services。
分析服务表格模型

Power Pivot(Excel)

Excel中的Power Pivot能够处理数百万行,就像基于数据模型的迷你数据仓库一样,可以使用DAX进行查询。
excel中的电力枢纽

Azure Analysis Services

最后,Azure Analysis Services基于云的Analysis Services版本使用DAX来运行DAX查询,包括创建计算列和度量。
天蓝色分析服务

DAX和数据分析

DAX专为满足表格模型数据系统的业务分析需求而设计。因此,它的设计考虑了业务分析环境中的兴趣点。例如,您可以将数百万个值汇总到闪存中的单个结果中,也称为聚合,或者您可以快速获得按区域或时间购买的总产品,称为过滤
数据数据分析

DAX与Excel公式

请记住DAX可能看起来与Excel公式类似,但它不仅仅是公式,而EXCEL公式应用于单元格DAX公式应用于数据模型中的表格。

DAX限制

DAX就像任何其他语言一样,在处理以下情况时可以很容易地观察到:

  1. 包含大量列的表会降低DAX性能
  2. 报告显示简单的长记录列表(日常操作),无需任何度量或计算列
  3. DAX不直接支持多对多关系

上述限制基于Eugene Meidinger(Database Developer和DAX Trainer)共享的信息。

DAXing数据

大兴数据意味着针对表格模型运行DAX查询,以解决分析问题以满足业务需求或仅为了娱乐或研究目的而进一步探索DAX。

从SQL Server数据库或Analysis Server上的Power Pivot设置表格模型

概览

针对数据模型运行DAX查询的最佳方式是以表格分析服务数据库的形式。部署到表格分析服务器时的数据模型成为Analysis Services数据库。

本节介绍设置表格分析服务数据库的可用选项,以便可以使用DAX查询它。

表格分析数据库设置选项

有两种方法可以设置表格分析数据库:

  1. 通过SQL Server数据工具(SSDT)将数据模型部署到表格分析服务器
  2. 从Power Pivot恢复表格分析数据库(在Excel中创建)

方法1:通过SQL Server数据工具(SSDT)部署数据模型

步骤摘要

此方法需要以下步骤:

  1. 在Visual Studio中创建Analysis Services表格模型项目
  2. 选择Workspace Server选项
  3. 创建和填充示例SQL数据库(OfficeSuppliesSampleV3)
  4. 将SQL数据库(OfficeSuppliesSampleV3)导入到加载数据模型
  5. 将日期表重命名为DimDate
  6. 通过将DimDate表与Orders表连接来创建关系
  7. 添加角色(通过添加用户名)来解决访问问题
  8. 将数据模型作为表格Analysis Services数据库部署到Analysis Server

第1步:创建Analysis Services表格模型项目

在Visual Studio SQL Server数据工具(SSDT)中创建一个新的Analysis Services表格项目,并将其命名为OfficeSuppliesSampleV3_Tabular:
分析服务表格项目

第2步:选择Workspace Server Option

选择Workspace Server选项并将其指向已安装的 表格分析服务器
选择工作区服务器

第3步:创建和填充示例SQL数据库

请运行以下脚本来设置和填充SQL数据库OfficeSuppliesSampleV3:
 
示例数据库

第4步:将SQL数据库(刚创建)导入到加载数据模型

将数据库导入表格模型项目:
导入sql数据库
选择要导入的所需数据库对象(表)而忽略OrdersView:
导入对象

第5步:将日期表重命名为DimDate

将Date表重命名为DimDate,以避免与Date保留工作混淆。

步骤6:通过将DimDate表与Orders表连接来创建关系

切换到数据模型的图表视图,并将日期表 Date_KeyOrders 表中的Order_Date列连接,一旦Date表重命名为DimDate:
建立关系

第7步:添加角色(通过添加用户名)来解决访问问题

通过单击Visual Studio中的主菜单中的MODEL> Roles …添加新角色:
添加一个新角色
接下来,首先单击“ 新建” 按钮将您的用户名添加为新角色,然后使用“ 添加”按钮将您的用户名分配给新创建的角色,如下所示:
角色经理

步骤8:将数据模型部署到分析服务器:

最后将模型部署到Analysis Server:
部署模型
有关详细信息,请查看以下先前的提示:

方法2:通过Power Pivot部署数据模型

有一种更直接的方法可以从Excel中创建的Power Pivot将表格模型部署到Analysis Server。

由于从示例数据库在Excel中创建Power Pivot的详细步骤超出了本教程的范围,因此我们假设已从示例数据库OfficeSuppliesSampleV3创建了Excel Power Pivot文件。

步骤摘要

此方法需要以下步骤:

  1. 基于OfficeSuppliesSampleV3创建Excel Power Pivot
  2. 提供Analysis Server对Excel文件的访问权限
  3. 通过选择 “从Power Pivot恢复”选项在Analysis Server上部署OfficeSuppliesSampleV3
  4. 添加角色(通过添加用户名)来解决访问问题

步骤1:基于OfficeSuppliesSampleV3创建Excel Power Pivot

下载OfficeSuppliesSampleV3 Power Pivot Excel文件

第2步:提供Analysis Server对Excel文件的访问权限

从Excel文件创建Power Pivot后,Analysis Server应该可以访问它,这是通过提供对文件的访问权限来完成的。

右键单击“Excel Power Pivot”工作表,然后单击“属性”。

在Security选项卡下单击Edit,然后单击Add:
提供分析服务器访问电源枢轴
单击“ 高级”,然后单击“立即查找”,然后在列表中找到“表格分析服务器”并单击“ 确定”
为power pivot添加分析服务器访问权限

步骤3:在Analysis Server上部署OfficeSuppliesSampleV3

连接到SSMS(SQL Server Management Studio)中的表格分析服务器,右键单击“ 数据库”,然后单击“ 从PowerPivot导入…”
创建分析服务数据库
找到Power Pivot文件的路径和文件名,然后单击“ 确定”
选择路径和文件名
将数据库还原为OfficeSuppliesSampleV3-PowerPivot-Tabular:
选择电源枢轴文件的路径

第4步:添加新角色

通过自己提供用户名来添加新角色访问此表格数据库:
添加新角色

安装DAX Studio for SQL Server

概览

本节介绍DAX Studio的安装过程,这是一个非常直观的工具,用于针对部署的表格模型运行DAX查询。

DAX Studio应用程序

根据DAX Studio的官方网站,DAX Studio是一个客户端工具,用于对各种数据源执行DAX查询,包括:

  1. Excel中的PowerPivot
  2. Power BI桌面
  3. Analysis Services表格
  4. Azure Analysis Services

安装DAX Studio

请访问DAX Studio主页并下载最新版本的DAX Studio:
安装dax工作室
如果您想继续操作,请阅读并接受许可条款,然后单击 下一步:
安装dax工作室
设置安装文件夹(DAX Studio将安装的位置),然后继续使用默认选项,如果您还要将DAX Studio添加到Excel,请选中Excel Addin:
安装dax工作室

启动DAX Studio

默认情况下,在成功安装结束时,系统会询问您是否有兴趣启动DAX Studio,选择确定并输入DAX Studio将连接到的Analysis Server地址:
用dax studio连接到服务器

DAX Studio用户界面:

根据DAXStudio.org,DAX Studio主屏幕包含以下部分:

  1. 综合追踪支持
  2. 表格查询编辑器
  3. 元窗格
  4. 输出窗格
  5. 状态栏

dax工作室界面
请记住,DAX Studio是独立使用的,可以对表格模型运行DAX查询,也可以作为Excel中的加载项运行。

DAX Studio专门设计用于运行DAX查询或公式,因此它提供了许多其他支持功能,包括语法突出显示。

DAX Studio已成功安装,Analysis Services数据库也已连接到DAX Studio,因此我们现在可以启动DAXing数据了。

SQL Server中的DAX评估语句以检索数据

概览

在我们开始使用Evaluate语句之前,让我们快速了解基本的DAX查询语法和DAX公式语法。在查询表格模型时,Evaluate被视为基本构造,这意味着请求包含在Evaluate中。

构建基本DAX查询

基本的DAX查询就像一个T-SQL紧凑模式查询。

DAX查询由一个函数和一些 表达式组成

根据MSDN ,DAX中的表达式可以是以下一个或全部:

  1. 常数 Constant
  2. 操作者 Operator
  3. 值 Value

值可以是表或表的列值。

括号是一种特殊类型的运算符,用于赋予优先级或用于对参数进行分组。

基于以上事实,让我们形成一个简单的DAX查询语法:

--DAX Query Syntax with one expression
Function(Expression)
where Expression can be Expression1,Expression2,..n

这说明如下:
dax查询语法
现在让我们用表名替换Expression:

--DAX Query Syntax replacing Expression with Tabular Model Table
Function(Customer)

带有两个表达式的DAX查询语法:

--DAX Query Syntax with two expressions
Function(Expression1,Expression2)

带有n个表达式的DAX查询语法:

--DAX Query Syntax with n expressions
Function(Expression1, Expression2, …ExpressionN)

使用Evaluate检索表格数据

要使用DAX查询检索表格数据,我们使用Evaluate 子句,该子句将表作为表达式。

Evaluate(table)

例如,要获取所有客户表格数据,我们在DAX查询编辑器中编写以下DAX查询:

Evaluate(Customer)

评估查询结果
Evaluate类似于T-SQL中的SELECT * FROM

按列排序表格数据

通过使用DAX查询结尾处的Order By子句,可以按特定顺序返回表格数据:

Order By (Expression)

我们还可以使用可选的Order By子句按客户名称订购表格数据Customer,如下所示:

Evaluate(Customer) Order By Customer[Name]

评估查询结果

使用值来检索表格列数据

我们还可以使用Values()函数来显示表格数据或单列数据。

要编写DAX查询以选择要按降序显示的客户名称,请使用Values(),如下所示:

EVALUATE(VALUES(Customer[Name])) ORDER BY Customer[Name] DESC

评估查询结果
请注意,VALUES()函数仅显示不同的值(不包括重复项)。

SQL Server中的DAX汇总语句到组数据

概览

到目前为止,我们只检索了表或列中的数据,但是如何对数据进行分组和应用聚合。Summarize语句用于即时分组数据(列)以应用聚合函数。在最简单的形式中,Summarize可用于显示表格数据而无需分组。

获取产品ID和名称

例如,为了查看带有ID的产品名称,我们可以使用Summarize语句简单地编写以下DAX查询:

EVALUATE(SUMMARIZE(产品,产品的[ProductID],产品[名])) 

dax总结了查询结果

获得所有下订单的客户

Summarize要求表名后跟要分组的列,后跟聚合列的名称,后跟聚合。

只要已建立其关系,就可以直接使用其他表中的列而无需加入。例如,要查看客户名称和他们下订单的日期,可以编写以下DAX查询:

EVALUATE(SUMMARIZE(订单,订单[订购日期],客户[名]))

通过排序最新的订单为所有客户提供排序

让我们编写一个稍微复杂的DAX查询,以查看按最新订单排序的所有客户,首先只需添加Order By,如下所示:

评估(概要(订单,订单[OrderDate],客户[名称]))订单订单[OrderDate] DESC

dax总结了查询结果

获取每个客户下达的订单数量

要查看每个客户放置了多少订单(按客户分组订单),将使用以下脚本:

评估(SUMMARIZE(订单,客户[名称],“总订单”,COUNT(订单[CustomerId])))

dax总结了查询结果

按类型获取订单数量

如果我们想知道订单类型的订单数量,请使用以下脚本:

EVALUATE(SUMMARIZE(订单,OrderType [名称],“总订单”,COUNT(订单[OrderTypeId])))

dax总结了查询结果

获得每月订单

要查看每月的所有订单,我们通过访问日期列日历月来利用时间智能:

评估(SUMMARIZE(订单,DimDate [MonthName],“每月订单”,COUNT(订单[OrderId])))

dax总结了查询结果

SQL Server汇总语句中的DAX到组和总数据

概览

汇总功能是一个附加的汇总 功能,在总结基于一些分组数据聚集, 汇总给小计和总计。RollUp函数用作Summarize函数内的参数。RollUp首先显示按列分组的聚合数据(计数,总和),然后显示所有聚合数据(计数,总和),而不进行任何分组,依此类推。

无需RollUp即可获得每年的总订单数

为了查看每年的订单总数,我们编写以下DAX查询:

评估(概要(订单,DimDate [年],“总订单”,COUNT(订单[OrderID])))

dax总结了查询结果

使用RollUp获取每年的总订单和总订单总数

无需使用RollUp即可查看每年的订单总数,但如果我们不仅要查看每年的订单总数,还要查看所有年份的订单总数,那么我们必须按如下方式使用RollUp:

评估(SUMMARIZE(订单,ROLLUP(DimDate [年]),“总订单”,COUNT(订单[OrderID])))

dax汇总查询结果

在没有RollUp的情况下获得每个客户每月的总订单数

例如,如果我们想知道客户每个月下达的订单数量,我们可以使用以下脚本检索数据而不使用RollUp:

评估(SUMMARIZE(订单,DimDate [MonthName],客户[名称],“总订单”,COUNT(订单[OrderId])))

dax总结了查询结果

使用RollUp获取每个客户每月的总订单数

如果我们有兴趣使用单个DAX查询检索以下内容的数据,该怎么办?

  1. 每个客户每月的订单总数
  2. 每月订单总数

这就是RollUp付诸行动的地方。使用RollUp可以满足获得每月订单总数的额外要求, 如下所示:

EVALUATE(SUMMARIZE(订单,ROLLUP(DimDate [MonthName],客户[名称]),“总订单”,COUNT(订单[OrderID])))

dax汇总查询结果

摘要

因此,我们将RollUp放在Summarize和 Summarize里面评估,但是,请记住,之前讨论的RollUp仅在Summarize中 用于给出小计和总计。换句话说,Evaluate 将Summarize作为参数,Summarize将 RollUp作为一个参数参数,只要我们得到一个表,它可以是一个表(表格行),DAX语法是有效的。

用于过滤数据的SQL Server过滤器函数中的DAX

概览

到目前为止,我们已经学会了创建DAX查询以获取表格数据,然后根据分组聚合数据,但过滤数据呢?DAX提供非常丰富的过滤,可以通过使用过滤 功能来实现。

Filter函数的语法如下:

Filter(<Table>,<Filter expression>)

按总价格过滤订单

让我们举一个简单的过滤示例,我们有兴趣查看总价格超过200的所有订单。

这在DAX中表达如下:

EVALUATE(FILTER(Orders,ORDERS[TOTALPRICE]>200.00))

使用过滤器的dax查询结果

过滤特定客户的所有订单

为了查看基于特定客户的所有订单的列表,或者换句话说,如果我们只对特定客户下的订单感兴趣,那么我们必须使用过滤功能。

让我们通过在 Filter中使用Summarize来查看更复杂的过滤器,以查看由名为Sadaf Khan的特定客户发出的所有订单 。

有一种快速的方法可以使用Related(在当前上下文中超出范围),但让我们借此机会了解如何使用嵌套构建DAX查询。

要查看客户Sadaf Khan发出的所有订单首先创建DAX查询以查看所有客户使用 Summarize下达的所有订单:

EVALUATE(SUMMARIZE(Orders,orders[OrderID],Customer[Name]))

dax查询结果使用汇总
现在上面查询中使用的Summarize成为Filter函数的第一个参数,因为第一个参数需要表或表表达式:

EVALUATE(FILTER(SUMMARIZE(Orders,orders[OrderID],Customer[Name]),<table expression>)

最后,我们将Filter 函数的第二个参数中的filter表达式应用于特定客户,如下所示:

EVALUATE(FILTER(SUMMARIZE(Orders,orders[OrderID],Customer[Name]),Customer[Name]="Sadaf Khan"))

我们可以添加更多列来查看Sadaf Khan的详细订单信息:

EVALUATE(FILTER(SUMMARIZE(Orders,orders[OrderID],Customer[Name],DimDate[MonthName],Orders[Quantity],Orders[TotalPrice]),[Name]="Sadaf Khan"))order by Orders[OrderID]

使用过滤器的dax查询结果

按特定年份和产品过滤所有订单

现在,我们有兴趣看到所有的订单放置在今年 2017年所有该产品是客户橡皮擦

构建这样的查询再次稍微复杂,特别是当我们必须使用Summarize with Filter时,尽管有更快的方法(使用 Related)。

构建一般查询以查看所有年份中所有产品的所有订单:

EVALUATE(SUMMARIZE(Orders,Product[Name],DimDate[Year]))

接下来按产品分组订单以获得所有年份的总订单如下:

EVALUATE(SUMMARIZE(Orders,Product[Name],DimDate[Year],"Total Orders",Count(Orders[OrderID])))

通过将Summarize语句作为第一个参数并将Year和Product作为第二个参数传递来添加过滤器,如下所示:

EVALUATE(FILTER(SUMMARIZE(Orders,Product[Name],DimDate[Year],"Total Orders",Count(Orders[OrderID])),DimDate[Year]=2017 && Product[Name]="Eraser"))

如果我们格式化DAX查询,它将变为:

EVALUATE
 (
    FILTER (
        SUMMARIZE (
                   Orders,
                   Product[Name],
                   DimDate[Year],
                   "Total Orders", COUNT ( Orders[OrderID] )
                   ),
        DimDate[Year] = 2017 && Product[Name] = "Eraser"
           )
  )

使用过滤器的dax查询结果

SQL Server AddColumns中的DAX将新列添加到查询结果中

概览

我们已经知道我们可以简单地添加具有Summarize功能的新列。但是,Summarize不仅可以添加列,还可以使用更好的AddColumns函数。所述 AddColumns功能,而不需要进行分组或汇总数据添加列(多个)。

ADDCOLUMNS的语法如下:

ADDCOLUMNS(<Table>,<Name of Column>,<Expression>)

ADDCOLUMNS将表或表表达式作为参数,后跟要添加的列的名称,后跟列的表达式,如SUM,COUNT等。

将Pounds列添加到Pence列中

订单表中的总价格以磅为单位,因此我们创建一个新列,通过将总价格乘以100 来将磅转换为便士, 因为1磅有100便士。

EVALUATE(ADDCOLUMNS(Orders,"Pounds into Pence",Orders[TotalPrice]*100))

dax查询结果

在现有的已售产品数量中再添加10个

让我们创建一个DAX查询,将10个以上的产品添加到销售给所有客户的产品中。

请再次参考语法:

ADDCOLUMNS(<Table>,<Name of Column>,<Expression>)

我们可以简单地替换<TABLE>与ADDCOLUMNS 总结,因为这将帮助我们获得多个表加上我们希望的任何其他分组列虽然我们任何分组后都没有。

ADDCOLUMNS(SUMMARIZE(<Table>,<Group By Column>,<Name of Column>,<Expression>),<Name of Column>,<Expression>)

接下来将<Number of Column>替换为“Quantity + 10”,将<Expression>替换为Orders [Quantity] +10。

最终的DAX查询变为:

EVALUATE(ADDCOLUMNS(SUMMARIZE(Orders,Customer[Name],OrderType[Name],Orders[Quantity]),"Quantity+10",Orders[Quantity]+10))

dax查询结果

添加2017年5月的价格总和列

好吧,如果你看看标题,你可以猜到这里是过滤器。无论我们是什么,我们需要缩小我们的结果以查看2017年5月和2017年的数据。

让我们回顾原始构造:

ADDCOLUMNS(<Table>,<Name of Column>,<Expression>)

这次从第二个和第三个参数开始,我们需要定义要添加的列,即价格总和:

ADDCOLUMNS(<Table>,”Sum of Price”,SUM(Orders[TotalPrice]))

用SUMMARIZE替换第一个参数:

EVALUATE(ADDCOLUMNS(SUMMARIZE(Orders,Customer[Name],Product[Name],DimDate[MonthName],Orders[TotalPrice]),"Sum of Price",SUM(Orders[TotalPrice])))

格式化查询:

EVALUATE
 (
   ADDCOLUMNS (
       SUMMARIZE (
            Orders,
            Customer[Name],
            Product[Name],
            DimDate[MonthName],
            Orders[TotalPrice]
                  ),
              "Sum of Price",SUM ( Orders[TotalPrice] )
              )
)

那么SUMMARIZE将成为Filter的一个参数:

EVALUATE
 (
   ADDCOLUMNS
    (
       Filter
        (
           SUMMARIZE (
                Orders,
                Customer[Name],
                Product[Name],
                DimDate[MonthName],
                Orders[TotalPrice]
                     ),DimDate[MonthName]="May 2017"
        ),
       "Sum of Price",SUM( Orders[TotalPrice] )
    )
)

dax查询结果
在上面的DAX查询中,SUM(订单[TotalPrice])给出了所有销售产品的总价格。

使用计算到总和价格

请注意,在上面的脚本中,如果我们使用CALCULATE来汇总价格,那么我们会根据分组数据获得价格总和,但它们都有意义。

EVALUATE
 (
   ADDCOLUMNS
    (
       Filter
        (
           SUMMARIZE (
                Orders,
                Customer[Name],
                Product[Name],
                DimDate[MonthName]
                      ),DimDate[MonthName]="May 2017"
       ),
       "Sum of Price",CALCULATE(SUM( Orders[TotalPrice] ))
    )
)

在上面的DAX查询中,SUMMARIZE中的订单[TotalPrice]已被删除,因为不再需要它。

请注意,使用SUMMARIZE函数也可以实现相同的(价格总和),但使用ADDCOLUMNS比SUMMARIZE函数具有性能优势。

添加所有在线订单的计数

以下脚本为我们提供了所有在线订单的计数:

EVALUATE(FILTER(ADDCOLUMNS(SUMMARIZE(Orders,OrderType[Name]),"Total Orders",CALCULATE(COUNTROWS(Orders))),OrderType[Name]="Online Order"))

格式化风格:

EVALUATE
 (
   FILTER (
       ADDCOLUMNS (
           SUMMARIZE ( Orders, OrderType[Name] ),
                      "Total Orders",CALCULATE (COUNTROWS ( Orders ) )
                  ),
                OrderType[Name] ="Online Order"
           )
  )

dax查询结果

摘要

恭喜!您已成功学习基于表格模型(Analysis Services数据库)编写基本DAX查询,这不仅比使用T-SQL查询查询关系数据库快得多,而且还具有超出T-SQL范围的特殊数据分析功能。

SQL Server中DAX的附加学习

下一步

既然您已了解使用DAX查询表格模型的基础知识,请执行以下操作:

请参阅我的上述提示,了解如何创建表格模型:

看看这些其他教程:

从SQL数据库示例中尝试以下操作:

  • 在示例数据库中创建并填充Supplier表,并将其导入表格模型并将其链接到Product,以编写稍微复杂的DAX查询。
  • 尝试针对SQL数据库编写本教程中提到的一些DAX查询的等效T-SQL查询,以了解DAXing数据与查询数据的简易性和舒适性。
  • 尝试使用您的DAXing数据知识在表格模型中创建一些计算列。

24 total views, 3 views today

Author: Albert

Leave a Reply