很多人刚开始接触DAX的时候都有一个疑惑:为什么搜集了所有精品学习资料,看遍了所有函数的语法,可还是下不了手?不知道如何使用DAX。
究其原因,关键是没有将DAX语言放到实际的应用场景中,无法做到学以致用,,就像我们学习了多年的英语,可依然开不了口。今天,小姐姐就通过一些实际项目需求中总结下来比较常见的应用场景,每节动手时间大概在10分钟左右,帮助大家敏捷学习DAX,举一反三,迅速上手。
学习之前先要做好数据准备哦
(我们的教程是以微软官方示例数据库AdventureWorksDW2016为基础,大家可以从文章最后下载)
首先我们从最简单的开始吧~
有什么数据
我们有一张销售订单表,表中有销售订单日期、订单编号、产品、客户等信息
需求是什么
通过分析订单的下单时间分布,获取下单的高峰期或者淡旺季信息
快速分析
要获取下单时间分布,我们可以通过订单数量和订单金额这两个指标来体现分析。示例中的销售订单是有多个行明细的订单,所以我们需要对订单编号做去重计数处理获取到订单数量。
在DAX中,去重计数可以使用DISTINCTCOUNT(<column>),这个函数会返回非重复的数目,包括空值。
求和可以使用SUM(<column>)(当然,还可以使用SUMX,后面我会细讲他们的区别)
动动小手
在空表下面创建度量值(敲黑板:建议度量值统一创建在一个空表里,方便查询)
DistinctCount = DISTINCTCOUNT('FactInternetSales'[SalesOrderNumber])
SalesAmount = SUM('FactInternetSales'[SalesAmount])
搞定!这样我们就可以获取到我想要的信息了
分析结论
从上图我们可以看到上半年是销售旺季,尤其年中6月会达到一个高峰值,这样便于我们有效分配资源。
是不是很简单呢?小姐姐会逐步提高难度,提高大家的学习效率,做到真正学以致用~
附录:
数据库下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=49502