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、妮维雅蓝罐是一款面霜,它的成分除了拥有专利配方Eucerit,能持久滋润柔软肌肤,干燥的皮肤和部位都能得到有效的保湿和滋润的成

    2024-04-15
    47700
  • 刮胡啫哩和刮胡泡的区别

    传统的是刮胡膏,也就是刮胡啫喱,不过还需要用刮胡刷来进行起泡的操作才可以使用,而泡沫可以说是直接省去的起泡的步骤,直接喷涂在胡须上便可。当然,因为用刮胡刷起泡后的刮胡膏还是有一定的软化胡须的作用,所以按照功效来说,肯定是刮胡膏会好很多,而且

    2024-04-15
    35100
  • 有什么平价好用的男士水乳推荐?求推荐?

    男士平价乳液排行榜10强:  1、悦诗风吟  2、CeraVe  3、百雀羚  4、妮维雅  5、FANCL  6、高夫  7、相宜本草  8、欧莱雅  9、吾诺  10、资生堂  一、悦诗风吟青竹男士控油润肤乳  产品介绍:悦诗风吟的这款

    2024-04-15
    30800
  • 云联惠投资的钱能要回来吗

    事件过去一年多了,现在没有一个成功退款的,佛山这边更是报案也不会受理,有代理下线几十人,也没捉人,而和云联惠合作的湖南伊思多尔公司也是冻结中,很多代理分公司都关闭了,购车钱交了没出单的有很多,光福建泉州群就有好几百人没出单的,全国加起来有多

    2024-04-15
    27500
  • 什么是化妆品oem?有什么好处?

    OEM就是品牌生产者因某些原因而不直接生产产品,而是利用自己掌握的“关键的核心技术”负责设计和开发新产品,控制销售销售“渠道”,而生产能力有限,甚至连生产线、厂房都没有,为了增加产量及销量,为了降低上新生产线风险,甚至是为了赢得市场时间,通

    2024-04-15
    38800
  • 妮维雅防晒霜好用吗

    根据小编自己亲测之后的感觉来看还是很不错的,旗下的防晒霜有多种不同类型,有的是以黄盖呈现的喷雾,有的是以挤压头呈现的,也有一些是针对儿童而生的。不管是哪一种,其实都具有着很容易晕开、安全系数比较高的特色,特别是旗下的防晒喷雾非常好用,小小一

    2024-04-15
    32700
  • 林墨被一个跑过去的工作人员撞倒,一时起不来,他的体质是否太弱了?

    林墨的体质并不是很弱,他只是长时间的练习跳舞导致他腰部受伤,与他自己的体质无关,毕竟每一个爱豆都是需要长时间练习舞蹈,这样才能在舞台上把最好的一面展现给大家,粉丝们也才会喜欢这种舞台非常棒的爱豆。林墨是原际画这个公司的一员,他是一名养成系爱

    2024-04-15
    28000

发表评论

登录后才能评论
保存