正在准备一个全新内容,从而验证喜乐君分析框架的普适性。全新视角看DAX:课程 博客同步要点:

希望进一步了解,欢迎观看系列视频:

【B 站课堂】DAX 别裁新解 https://www.bilibili.com/cheese/play/ss8780?bsource=link_copy
该视频系列在2024年7月第三遍录制,增加了SQL 对比,增加了诠释深度

一、区分分析计算的两个阶段

实例:各年度的销售数量总和

SQL是编程语言,它天然有优先级概念,所以在select查询中,可以同时出现year函数和sum函数。

但是在DAX中,类似的逻辑就会出错。为此,我们必须明确地区分何为问题中的计算,何为预先在数据表明细行的计算。

在DAX中,于是就有了Calculated Column的概念,以新功能的方式,强制指定它的计算必须相当于明细表而有意义,在它之后,才能完成问题阶段的分组聚合。正因为此,calculated Column的计算结果,可以在问题中承担任意角色——不管是筛选、分组字段,还是作为聚合对象。 

二、DAX的计算列语法

也就是说,DAX的Calculated Column,相当于以功能的方式,强调了优先级的先后次序,弥补了函数语言先天性不足。

如下所示,可以先定义一个计算列,它会先于summarizecolumn而计算。

如果把上面的Column改完VAR变量,可以吗? 如下所示,运行会出错。大家可以评论一下为什么。

三、如何区分“预先计算”与“临时计算”

怎样的计算是在明细表中预先完成的,怎样是在视图中按需完成?

这是通往计算优先级的关键之一。

…… 

四、问题分析:聚合是本质

Measure 是分析的点睛之笔。

……

喜乐君 V0.2

类似文章