第4章数据分析表达式•数据分析表达式(DataAnalysisExpressions,DAX)是一个函数和运算符库,这些函数和运算符可用便在MicrosoftSQLServerAnalysisServices、Excel中的PowerPivot以及PowerBI中创建公式和表达式。•本章主要内容:DAX基础DAX函数4.1DAX基础•DAX也称公式语言,它与Java、Python、C++等计算机程序设计语言不同,它通过公式来完成计算。DAX与Excel的公式非常相似,而且大部分函数都是通用的。•本节主要内容:语法规则运算符数据类型上下文4.1.1语法规则•语法规则是DAX公式的编写规则。一个DAX公式通常包含度量值、函数、运算符、列引用等组成,如图所示。•度量值度量值类似于程序设计语言中的全局变量,是一个标量,通常用于表示单个的值。例如,求和、求平均值、求最大值等结果为单个值,可定义为度量值。度量值可在报表任意位置使用。在PowerBIDesktop中,可用公式来创建度量值、列和表,所以等号左侧可以是新建的度量值、列或表的名称。用公式创建的列和表可分别称为计算列和计算表。•等号等号表示公式的开始,其后是完成各种计算的表达式。•函数PowerBIDesktop提供了大量的内置函数,这些函数通常用于在数据表中返回单个值,或者返回包含单列或多列的表。•运算符运算符完成相应计算。•列引用在公式中除了列引用,还涉及度量值和表的引用。列和度量值在引用时,名称必须放在方括号中。在引用表时,表名称包含空格或其他特殊符号时,必须将名称放在单引号中,否则可以直接使用名称。引用列时,如果列不属于当前数据表,则必须用数据表名称限定列,例如,“'销售数据'[销量]”或者“销售数据[销量]”。使用数据表名称限定列名也称为完全限定,建议在公式中都使用完全限定,避免产生误解。•DAX公式与Excel公式类似,两者主要区别如下。Excel公式可以直接引用单个的单元格或某个范围的多个单元格。PowerBI公式只能直接引用完整的数据表或数据列。通过筛选器和函数,可获得列的一部分、列中的唯一值或者表的一部分的引用。DAX公式与Excel支持的数据类型并非完全相同。通常,DAX提供的数据类型比Excel多,在导入数据时DAX会对某些数据执行隐式类型转换。•DAX公式还具有下列特点。DAX公式不能修改表中原有的数据,只能通过新建列操作为表添加数据。可通过DAX公式创建计算列、度量值和表,但不能创建计算行。在DAX公式中,不限制函数的嵌套调用。DAX提供了返回表的函数。4.1.2运算符•DAX支持4种运算符:算术运算符、比较运算符、文本串联运算符和逻辑运算符。1.算术运算符•算术运算符用于执行算术运算,运算结果为数值。符号说明举例+加法运算2+3-减法运算或负数符号2-3*乘法运算2*3/除法运算2/3^求幂2^32.比较运算符•比较运算符用于比较操作数关系,运算结果为逻辑值True或False。符号说明举例=等于[语文]=60>大于[语文]>60<小于[语文]<60>=大于或等于[语文]>=60<=小于或等于[语文]<=60<>不等于[语文]<>603.文本串联运算符•文本串联运算符只有一个:&,用于将两个字符串连接成一个字符串。例如,"abc"&"123",结果为"abc123"4.逻辑运算符•逻辑运算符用于执行逻辑运算,运算结果为逻辑值True或False。符号说明举例&&逻辑与,两个操作数都为True时,运算结果为True,否则为False[语文]=60&&[数学]>60||逻辑或,两个操作数都为False时,运算结果为False,否则为True[语文]>60||[数学]>604.1.3数据类型1.数字类型•PowerBIDesktop支持三种数字类型:小数、定点小数和整数。小数:表示64位(8字节)浮点数。可以处理从-1.79E+308到-2.23E-308的负数、0,以及从2.23E-308到1.79E+308的正数。定点小数:小数点位置固定,小数点后固定有四位有效数字数,最多19位有效数字。它可以表示的值范围为-922,337,203,685,477.5807到+922,337,203,685,477.5807。整数:表示64位(8字节)整数值。最多允许19位有效数字,取值范围从-,223,372,036,854,775,808到9,223,372,036,854,775,807。2.日期时间类型•PowerBIDesktop支持查询视图中的五种日期时间数据类型,以及报表视图和模型中的三种日期时间数据类型。日期/时间:...