初学者,了解DAX-Day09

DAX是什么?

DAX 全称 Data Analysis eXpressions,是面向 Microsoft Power BI、Microsoft SQL Server Analysis Services (SSAS)和 Microsoft Power Pivot for Excel 的编程式数据分析语言。

在 Power BI Desktop 中,DAX 是一种用于处理关系数据的公式语言。 DAX 包括一个超过 200 个函数、运算符和构造的库,这个库可为创建度量值提供巨大的灵活性,几乎可以计算任何数据分析所需的结果。

所谓:千里之行,始于足下

DAX 可以使用七种常用的数据类型进行计算:


整数 (Integer):

DAX 只有一个整数数据类型,存储 64 位的整数。DAX 中的整数值之间的所有内部计算都使用 64 位整数。 它支持 19 位数;从 -9,223,372,036,854,775,807 (-2^63+1) 到 9,223,372,036,854,775,806 (2^63-2) 的正数或负数。 在需要控制舍入的情况下,整数类型非常有用。


十进制数 (Float):

十进制数总是以双精度浮点值的形式存储。不要将这种 DAX 数据类型与 Transact-SQL 的十进制和数字数据类型混淆:在 SQL 中,DAX 十进制数字的对应数据类型是浮点。


货币 (Currency), 内部存储为整数的固定小数:

货币数据类型存储固定的十进制数。它可以表示为 4 位的小数,内部存储为 64 位的整数值除以 10000。在货币数据类型之间执行的所有计算总是忽略 4 位小数点后面的小数。如果需要更精确的数据,则必须进行十进制数据类型的转换。
货币数据类型的默认格式包括货币符号。还可以将货币格式应用于整数和十进制数,还可以使用一种不带货币符号的格式来表示货币数据类型。


日期 (DateTime):

DAX 在日期/时间数据类型中存储日期。这种格式内部使用浮点数,其中整数对应于 1899 年 12 月 30 日以来的天数,而小数部分则表示当天的份数。小时、分钟和秒被转换成一天的小数部分。因此,下面的表达式返回当前日期加上一天(正好是 24 小时):
= NOW()+1
它的结果是在计算当前时间的明天的日期,如果你只需要使用日期/时间的日期部分,可以使用 TRUNC 函数来删除小数部分。
Power BI 还提供另外两种数据类型:日期类型和时间类型。在引擎内部,它们是日期/时间的简单变体。实际上,两种类型分别只存储日期/时间的整数部分或小数部分。


布尔值 (TRUE/FALSE):

布尔数据类型用于表示逻辑条件。例如,由以下表达式定义的计算列类型为布尔型:
= Sales[Unit Price] > Sales[Unit Cost]
你也可以将布尔数据类型视为数字,其中 TRUE=1 和 FALSE=0。这在排序时很有用,因为 TRUE >FALSE。相反的,如果在逻辑判断中直接使用数字,那么 0 将会被视为 FALSE,例如下面的表达式始终返回空
FILTER(Table,0)


文本 (String):

DAX 中的每个字符串都存储为 16 位 Unicode 字符串。默认情况下,字符串之间的比较是不区分大小写的,因此这两个字符串“PowerPivot”和“POWERPIVOT”是相等的。


二进制 (Binary):

二进制数据类型用于在数据模型中存储图像,在 DAX 中无法访问该数据类型。它主要被 Power View 或其他客户端工具用来显示直接存储在数据模型中的图片。在 Power BI 等其他工具中可能无法使用。


Blank/Null 类型:

BLANK 不对应 SQL 中的 NULL。DAX 中的 BLANK 不遵循 NULL 在 SQL 中的计算逻辑。在中间结果可能是 BLANK 的表达式中,必须注意这种区别。 你可以使用 BLANK 函数创建空白,并使用 ISBLANK 对其进行测试。


变体(Variant) 类型:

变体数据类型用于可能返回不同数据类型的度量值,具体取决于度量值使用的条件表达式。

基础函数类型:

聚合函数 - 这些函数计算由表达式定义的列或表中所有行的(标量)值,例如计数、求和、平均值、最小值或最大值。

日期和时间函数 - DAX 中的这些函数类似于 Microsoft Excel 中的日期和时间函数。 但是,DAX 函数基于 Microsoft SQL Server 使用的日期/时间数据类型。

筛选器函数 - 这些函数可帮助你返回特定的数据类型、在相关表中查找值,以及按相关值进行筛选。 查找函数是通过使用表及其之间的关系来工作的。 筛选函数允许你操作数据上下文来创建动态计算。

财务函数 - 这些函数用于执行财务计算的公式,例如净现值和回报率。

信息函数 - 这些函数查看作为另一个函数的参数提供的表或列,并反馈此值是否与预期类型匹配。 例如,如果引用的值包含错误,则 ISERROR 函数返回 TRUE。

逻辑函数 - 这些函数返回有关表达式中的值的信息。 例如,TRUE 函数可以让你了解正在计算的表达式是否返回 TRUE 值。

数学和三角函数 - DAX 中的数学函数类似于 Excel 中的数学和三角函数。 但是,DAX 函数使用的数值数据类型有所不同。

其他函数 - 这些函数执行无法由其他大多数函数的类别定义的唯一操作。

父函数和子函数 - 这些函数帮助用户管理在其数据模型中显示为父/子层次结构的数据。

关系函数 - 这些函数用于管理和利用表之间的关系。 例如,你可以指定要在计算中使用的特定关系。

统计函数 -这些函数计算与统计分布和概率相关的值,如标准偏差和排列数。

表操作函数 - 这些函数返回一个表或操作现有表。

文本函数 - 使用这些函数,可以返回字符串的一部分、搜索字符串中的文本或连接字符串值。 其他函数用于控制日期、时间和数字的格式。

时间智能函数 - 这些函数帮助你创建会使用日历和日期的相关内置信息的计算。 通过将时间和日期范围与聚合或计算结合使用,你可以跨可比时间段为销售、库存等生成有意义的比较。

                                                                理论是基石

在对 Power BI 的错误认识中,认为它是一个数据可视化工具的大有人在,实际上 Power BI 是一个基于数据模型的工具。 它使用独有的语言(DAX)在语义层(Semantic layer)定义度量值的业务逻辑,并允许使用两种语言查询数据模型:DAX 和 MDX,后者已经成为行业标准语言。

「一身转战三千里,一剑可当百万师」,DAX 是一门强大的语言,它让没有任何 IT 背景的普通人借助 Excel 这样的平民工具就可以处理几百万、上千万行的数据;完备的函数体系允许你将复杂的业务逻辑抽象成一个个公式,根据外部筛选条件的变化,这些公式可以瞬间完成计算并返回结果。在过去,这种分析可能需要依赖 IT 长达几小时或数天的反馈才能完成。借助 DAX,普通业务人员对数据的分析能力将可以实现质的飞跃,还可以更容易的从 Excel 切换到 SSAS 这样的企业级 BI 工具。

DAX 不是一门轻易就可以掌握的语言,需要学习它的理论,并通过做题来反复实践,在这个过程中你的认知会一次次的建立,又一次次被推翻,不要灰心,这是所有初学者的必经之路,你并不孤独。不要被眼前的挫折困扰,因为你的所有投入终将获得回报。

让我们从这里开始,一起进入这个全新的领域。

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值