Power Pivot 系列 (4) - DAX 查询

Power Pivot 系列 (4) - DAX 查询,第1张

Power Pivot 通过 DAX 查询可以实现从不同的视角查看数据。但在 Excel 中编写 DAX 查询却不太方便,所以本篇在讲解 DAX 查询用法的时候,以 DAX Studio 作为工具。关于 DAX Studio 请自行在网上搜索,我的上一篇也有介绍。

本篇的示例数据来自 《DAX 圣经》这本书,示例数据我已经上传到 github,文章的末尾有链接,方便大家学习。

DAX 查询一般从 EVALUATE 关键字开始,可以把 DAX 查询语句理解为 EVALUATE 关键字引导的表达式构成的语句。比如我要查询 Sales 表的所有数据,DAX 查询语句为:

相当于 SQL 语句的 SELECT FROM Sales; 第一行是注释。

DAX 查询的 ORDER BY 关键字引导的表达式对查询结果进行排序。升序为 ASC,降序为DESC 。

DAX 支持按多个字段排序:

SQL 语句选择指定字段很直观: SELECT A, B FROM sometable 。DAX 查询选择指定字段用 SUMMARIZE 函数。 SUMMARIZE 函数第一个参数为 table 的名称,后面跟若干个字段,即可以选择指定的列:

DAX 查询结果的界面:

数据筛选用 FILTER 函数, FILTER 函数第一个参数为 table 名称,第二个参数为筛选表达式,返回值为 table。比如我们要筛选出 Product 表中所有 Class 为 Economy 的数据:

数据透视表就是分组计算,如果我们要数据透视表的逻辑,但并不需要数据透视表的格式,使用 DAX 查询的分组计算作为输出就非常合适。分组计算用到 SUMMARIZE 函数的标准用法。 SUMMARIZE 函数语法如下:

函数的第一个参数是 table 名称;第二组参数是一系列列名称,根据列名进行分组,比如先按照客户,再按照产品名称等等;第三组参数由 name 和 expression 成对构成,比如 name 为 toal quantity, expression 为 SUM([Quantity],就根据 Quantity 列来计算合计数。假设我们需要按客户来计算销售的数量:

多字段分组:先按照客户,再按照产品分组计算销售数量的合计:

前面的示例都是基于一个表,接下来讲解多表关联的 DAX 查询。Power Pivot 中表的关系在关系图视图中维护,关系维护好后,在 DAX 查询时, 表的关系都为左连接且不能修改为其它连接方式 。这种机制虽然降低了灵活性,但却让 DAX 基于多表的查询语法变得非常简单。

比如我们要查询基于客户名称和产品名称的销售数量明细。我们刚才讲过,返回指定字段用 SUMMARIZE 函数:

查询结果截图如下:

这个查询涉及到 3 个表的关联,相同功能的 SQL 语句要复杂得多。同理,基于多个表的分组计算,也是只需要选择某个表的字段,而不需要关注表的关系。我们来对基于客户和产品计算销售数量合计的查询进行变更:

查询的截图如下:

嵌套使用 FILTER 和 SUMMARIZE 函数能达到这种效果。先用 SUMMARIZE 函数返回一个包含指定列的表,然后用 FILTER 函数基于这个计算表进行筛选:

添加列在 Power Pivot 中非常容易,但我们也可以在 DAX 查询中使用 ADDCOLUMNS 函数来添加列。 ADDCOLUMNS 函数的语法如下:

根据函数的语法,我们知道,可以一次添加多个列。下面的示例添加了一个计算列:计算出每一行的销售金额(单价 数量):

在 DAX 查询中,可以使用 VAR 定义变量,使用变量能够简化 DAX 查询语句的编写。定义变量需要在 EVALUATE 之前用 DEFINE 关键字引导,用 VAR 定义变量。比如,我们先定义一个按客户的国别和产品品牌分组计算销售数量的表,将这个表保存在变量 groupedSales 中,然后对销售按品牌进行筛选:

DAX 查询也可以定义度量值。度量值用 MEASURE 关键字定义,MEASURE 返回一个标量值。比如我们要按照品牌计算出销售额,先定义一个度量值,然后再基于品牌来作为筛选上下文计算。这种方法相对难懂,仅为了介绍定义度量值的方法。注意下面 DAX 查询中度量值的表达方法。

github - sample data

ax+b=cx+d

ax+b-cx=cx+d=cx

(a-c)x+b=d

(a-c)x+b-b=d-b

(a-c)x=d-b

x=(d-b)/(a-c)

ax+b=cx+d化成最简单的一元一次方程是 x=(d-b)/(a-c)

由题可知,a,b∈N+(非0自然数),且a÷3=b。

可知b是a的因数,且b是b自身的最大因数,所以a的因数集与b的最大因数集的交集,即b,就是a和b的最大公因数。

所以应选B。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/3724628.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-03-17
下一篇2024-03-17

随机推荐

  • 三天瘦腿的最快方法

    1、马步操,两脚张开,双脚间步幅稍大于肩宽,上身下沉做马步状,两脚踮起。2、空中脚踏车操,平躺,在空中踩脚踏车;瘦腿按摩术,用精油或霜,双手交替分别沿内侧和外侧由脚踝向大腿根部按摩,双腿向挤毛巾一样,按摩两腿肌肉,双手交替用力,拍打大腿赘肉

    2024-04-15
    56200
  • 想给妈妈送套化妆品,送什么品牌的化妆品最合适?

    年底啦,有很多小仙女想给自己的妈妈送一套护肤品,特别是有些自己当了妈妈后就更加懂得母亲的辛苦与伟大,加上大部分妈妈们都不懂这些,所以需要你们这些小棉袄给她们买更合适啦1、妈妈们的肤质:超过四十岁后皮肤的会逐步下降,所以妈妈们的肤质基本都是干

    2024-04-15
    56300
  • 哪一种精华的性价比更高啊?

    雅诗兰黛小棕瓶——精华界的常青树啊!说到精华怎能没有大名鼎鼎的小棕瓶。这款精华与其说是入门抗老精华不如说是一款维稳精华。看似无功无过,其实它一直在帮助你的肌肤保持一个稳定的状态。里面添加了一些可人的保湿、抗氧化成分:角鲨烷、咖啡因、酵母提取

    2024-04-15
    57000
  • olay水感透白六件套顺序

    Olay水感透白六件套的使用顺序如下:1 玉兰油深层洁肤乳。2 玉兰油莹肌亮肤液。3 玉兰油水感透白透视美白精华露。4 玉兰油水漾动力莹眸走珠精华笔。5 玉兰油水感透白防晒修护凝乳。6 玉兰油轻透倍护隔离防晒液。以上步骤有助于提亮你的肤色,

    2024-04-15
    63700
  • 保湿精华凝露 怎么用? 用在哪个步骤呢?

    精华凝露就是精华素,直接涂抹在脸上即可,在肌肤拍完水之后使用。顺序则是:洁面---水---精华凝露---乳液。精华凝露有锁水保湿的作用,凝露质地的精华液看上去就像我们平时所用的啫喱霜,这种质地的精华液通常也是不含油分的,容易推开,好吸收,锁

    2024-04-15
    47300
  • 请问下爽肤水、保湿霜、保湿凝露、保湿乳液、精华乳、精华素使用的顺序是怎样的?

    使用顺序(按照分子越小越先用的原则):爽肤水→精华素→保湿乳液→保湿凝露→保湿霜,质地越清爽、越稀越先用,这样更有利于各种营养的充分吸收。保湿霜作为最后一道护肤步骤,目的是要把水分都锁在脸上,这样肌肤才不会水分流失。精华凝露就是精华素,直接

    2024-04-15
    45600
  • 伊面是碱性还是酸性

    碱性 伊府面简称“伊面”,是一种油炸的鸡蛋面,为中国著名传统面食之一,源于中原开封,后传入广东、福建、苏州等地。它以鸡蛋面条先煮熟再油炸,可贮存起来,饥饿时下水一煮即可吃,面色泽金黄,面条爽滑,汤

    2024-04-15
    42900

发表评论

登录后才能评论
保存