美国留学选择什么专业好?留学美国热门专业推荐
2019-06-26
更新时间:2024-03-12 05:20作者:小乐
今天我们继续讲解表操作函数SUMMARIZE。顺便说一下,我们还要讲两个只能在SUMMARIZE 中使用的辅助函数。通常,表操作函数用作测量值的一部分。将测量值生成一个表格,然后对表格进行计算,最终得到可用的测量值。 SUMMARIZE的主要功能是一样的,但是通过实际看生成表的效果,有助于我们理解表操作函数及其含义,所以我会在单独的文章中介绍这个函数。
SUMMARIZE 函数类似于Excel 中的数据透视表,或者更类似于SQL 中的GROUP BY。它汇总表的指定字段并返回汇总表。
我们先看SUMMARIZE函数的一个比较实用的功能,它通过明细表生成维度表。意思是将订单明细表中的维度字段聚合起来,并使其唯一,这样就可以作为维度表,并且可以随着明细表的增减而自动变化。我们的订单详情如下
我们老师创建了最简单的产品ID和品牌维度表。 DAX报表及结果如下
产品维度表=SUMMARIZE('销售数据','销售数据'[产品id],'销售数据'[品牌])
我们先看一下函数的语法。第一个参数是一个表,后面可以跟一个或多个聚合列。最后,可以添加一列或多列的合计值。每组聚合值列由列名和列参数组成。
总结(, [, ]…[, ]…)
我们的语句只使用了两个聚合列,因此只有维度值,没有实际的指标值。结果如下
我们生成了一个根据订单详情而变化的类别维度表。我们还可以添加一列类别维度。 DAX报表及结果如下
产品维度表=SUMMARIZE('销售数据', '销售数据' [产品id], '销售数据' [类别], '销售数据' [品牌])
聚合指标参数添加在下面,类似于数据透视表。我们这里添加了三个指标数据,销售额、订单数和买家数。书写方法非常简单。 DAX报表及结果如下
产品汇总表=SUMMARIZE('销售数据','销售数据'[类别],'销售数据'[品牌],'销售金额(元)',SUM('销售数据'[总金额]),'数量order ',COUNTA('销售数据'[产品id]), '买家数量',DISTINCTCOUNT('销售数据'[用户id]))
接下来我们要讲的是只能在SUMMARIZE中使用的两个ROLLUP函数和ROLLUPGROUP函数。这两个函数的主要功能是为我们的聚合汇总指标添加总价值。我们先来看看ROLLUP函数。语法如下。结合SUMMARIZE的语法就一目了然了。这只是SUMMARIZE功能的一部分
卷起([,[,…]])
示范一下你就明白了。我们对刚才提到的三个指标做一个总结。 DAX报表如下
产品汇总表=SUMMARIZE('销售数据', ROLLUP('销售数据'[品类],'销售数据'[品牌]),'销售金额(元)', SUM('销售数据'[总金额]), '订单数量',COUNTA('销售数据'[产品id]), '买家数量',DISTINCTCOUNT('销售数据'[用户id]))
从结果中可以清楚地看到,我们的结果多了四类汇总数据和一类汇总数据,效果一目了然。
我们也可以将数据直接放入报表的表格中。效果如下,还是比较直观的。最上面是总的汇总数据,然后还有每个类别的类别汇总数据,应该用在一些特殊的小场景下
如果我们只需要显示总的汇总数据,而不需要显示各个类别的汇总数据,那么只需要在ROLLUP函数中再嵌套一个ROLLUPGROUP函数即可。 DAX报表及结果如下
产品汇总表=SUMMARIZE('销售数据', ROLLUP(ROLLUPGROUP('销售数据'[类别], '销售数据'[品牌])), '销售金额(元)', SUM('销售数据'[总金额]), '订单数量',COUNTA('销售数据'[产品id]), '买家数量',DISTINCTCOUNT('销售数据'[用户id]))
结尾