SQL专栏
SQL数据库基础知识汇总
SQL数据库高级知识汇总
什么是DAX
它是英文Data Analysis Expression的缩写,中文意思就是数据分析表达式。它是公式或表达式中可用于计算并返回一个或多个值的函数、运算符或常量的集合。 简单来说,DAX 可帮助你通过模型中已有的数据来创建新信息。
DAX语法
为方便介绍,我们用上一篇中的一个度量值示例来具体介绍DAX的语法公式
城市数量 = COUNT(Customers1[城市])
1、城市数量是度量值的名称
2、=表示公式的开头,计算结束后将返回结果
3、COUNT()是DAX中的一个函数,表示计数
4、Customers1是被COUNT()函数引用的表,如果是中文名称的表需要加单引号''
5、[城市]是被引用的列,这样COUNT()函数就知道被聚合的是哪一列了。[]是必须加上的
DAX常用函数
上面的语法中我们介绍了DAX中常用的COUNT函数,此外还有很多我们常见的函数。
聚合函数
SUM 求和
MAX 求最大值
MIN 求最小值
AVERAGE 求平均值
COUNTROWS 计算行数
DISTINCTCOUNT 计算不重复值的个数
时间智能函数
时间智能函数通过使用时间段(包括日、月、季度和年)对数据进行操作,然后生成和比较针对这些时段的计算,支持商业智能分析的需要。常见的时间智能函数如下。
PREVIOUSYEAR/QUARTER/MONTH/DAY
表示上一年/季/月/日
NEXTYEAR/QUARTER/MONTH/DAY
表示下一年/季/月/日
TOTALYTD/QTD/MTD
表示年初/季初/月初至今
SAMEPERIODLASTYEAR
表示上年同期
PARALLELPERIOD
表示上一期
DATESINPERIOD
表示指定期间的日期
筛选器函数
筛选器函数与我们数据库中的WHERE条件语句非常类似,通过筛选指定的列来返回我们需要的结果集。常见的筛选器函数如下。
FILTER
表示另一个表或表达式的子集的表,主要用来筛选表
ALL
返回表中的所有行或者返回列中的所有值,同时忽略可能已应用的任何筛选器。主要用来清除筛选。
ALLEXCEPT
删除表中除已应用于指定列的筛选器之外的所有上下文筛选器。主要用来保留指定的列。
VALUES
返回由一列构成的一个表,该表包含来自指定表或列的非重复值。 换言之,重复值将被删除,仅返回唯一值。
RELATED
从另一个表返回相关值。主要通过关联关系返回另外一个表中的值。使用前提是必须存在关联关系。
CALCULATE
DAX中最重要的函数,在指定筛选器修改的上下文中计算表达式。常与各种函数嵌套使用。
批注
这一章只是让大家对DAX有个初步的认识,在后续的章节中我们会对DAX作进一步详细的讲解,比如每个函数的具体用法,一些复杂表达式的写法等等。