学习度量值和计算列
现在你已经了解了DAX的基础语法,可以开始学习DAX中的一个重要知识:计算列和度量值的区别。第一眼看去,两者似乎是相同的,因为有的计算你使用他们结果是一样的。事实上,他们区别非常大。掌握他们的区别是解锁DAX真正实力的关键。
计算列
在Excel中建立计算列,只要到表格最后一列,添加列名称,然后写公式。DAX:不同的工具写DAX可能有不同的用户界面,通常,我们在函数栏写公式,然后系统会智能的提示您,协助完成代码。
计算列和普通列是一样的,可以添加到透视表或者其他报表的行,列,筛选器,值。也可以使用计算列在建立关系。DAX会根据所在行计算值,任何引用都会返回该列当前行的值,不能直接返回其他行的值。
划重点
后面我们会讲到,DAX有提供一些函数,可以聚合列的值或者整个表的值。要获取一系列行的值,只能通过函数把需要的行过滤出来,然后计算。在第四章,我们会深入学习这些知识。
有个重要的概念你要记得,就是计算列在数据库处理的时候就生成了,然后存储在内存中。如果你习惯SQL的话,可能会觉的DAX这个特点有点不同。SQL中,计算列只有在执行计算的时候生成,并不占用内存。在表格模型中,所有的计算列都回占用内存,而且是在处理表的时候就计算好了。
在你建立逻辑非常复杂的计算列时候,这个计算列的特点非常重要。计算列消耗的是模型生成的时间,而不是查询数据的时间,可以给使用者一个更好的体验。但是,要记得计算列占用非常宝贵的内存资源。举个例子,你有个逻辑非常复杂的计算列,你可能想去拆分各个计算步骤放到不同列里面。虽然这个在开发阶段会带来帮助,但是在生产环境下,是个不好的习惯,因为会占用宝贵的RAM资源。
网友评论