DAX中与计数相关的聚合函数
不问花开几许,只愿浅笑安然
除了求和,另一个日常工作中最常用到的聚合方式应该是计数了。DAX提供了一系列关于计数的函数。他们可以帮助我们计算表中有多少行或者某个值出现了多少次。
DAX中包含的计数函数有:
- COUNT()函数,对列中值的数量进行计数,除了布尔型;
- COUNTA函数,对列中值的数量进行计数,包含布尔型;
- COUNTBLANK()函数,返回列中空单元格的计数;
- COUNTROWS()函数,返回表中行的计数;
- DISTINCTCOUNT()函数,返回列中值的不重复计数,包含空单元格。
- DISTINCTCOUNTNOBLANK()函数,返回列中值的不重复计数,剔除空单元格。
一、计数与不重复计数
假设我们想看看不同产品类别中有多少种产品,并且想知道这些产品是不是多卖出去过(有交易记录)。我们就可以使用以上函数实现。在Power Pivot中建立一下度量值:
产品数量:=COUNT('产品表'[产品名称])
已销售产品:=DISTINCTCOUNT('订单表'[产品代码])
将产品类别设置成数据透视表的行标签,将以上两个度量值拖放到值区域,可以得到我们想要的计算结果。
观察办公用品中的结果可知:办公用品分类一共有8中产品,但实际有销售出去的仅有2中种,其他的产品都未出售过,需要进一步了解原因。
两个度量值使用的列是来自不同的表的,虽然他们都代表了产品名称。它们返回结果的业务意义是不同的。
我们曾经讲过普通的数据透视表无法进行非重复计数,而基于Power Pivot数据模型的数据透视表,更改汇总方式时不重复计数是可用的,其背后的原始其实是因为DISTINCTCOUNT()函数的存在。该函数对于列中的同一个值仅计算一次。
二、对行计数
COUNTROWS()函数与其他计数函数不同点之一就是它接受的参数是表。而其他计数函数接受的参数都是列。
COUNTROWS()函数对表中的行进行计数,不管行中是否有空值,都会计算一次。大多数情况下它与COUNT()函数都是可以互相替代使用的。具体选择哪个函数需要视业务情况决定。
在模型中增加以下两个度量值:
销售量:=COUNT('订单表'[产品代码])
销售量_COUNTROWS:=COUNTROWS('订单表')
将它们放在数据透视表的值区域将得到一样的结果。
如果你想从零开始学 Power BI,可以在公众号后台回复「极简入门」,获取PowerBI入门教程;或者回复「PQ入门」,免费获取PQ实战案例教程。
欢迎关注作者新书
发布:刘恩惠
审核:陈歆懿
如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连
热文推荐
独家!【隐秘而伟大】这群神秘的程序员,干了票大的
1024程序员节 | 国内顶尖优质原创,致敬每一位可爱的你~~
1024程序员节 | 这份“反内卷”书单请查收!
千万级高并发秒杀系统设计套路!超详细解读~~
▼点击阅读原文,了解本书详情~
相关文章
- 积分上限函数_定积分的基本计算方法
- 【c++的一些常用数组函数】
- Delphi中谨慎使用QuotedStr、QuotedString、DequotedString相关的函数
- const、sizeof与内联函数相关面试题
- python中main的含义及用法_python main函数有什么用
- GROUP_CONCAT函数切换实例
- 【数字信号处理】相关函数 ( 自相关函数示例 )
- 【数字信号处理】相关函数应用 ( 相关函数应用场景 | 噪声中信号检测 | 隐含周期性检测 | 时差估计 | 描述随机信号 )
- 【数字信号处理】相关函数应用 ( 使用 matlab 计算相关函数 )
- 【数字信号处理】相关函数应用 ( TDOA 时差估计 | 时间差与距离差 | 方向定位与精准定位 | 信号描述 | 通过相关函数求时间差 )
- [PHP] 重回基础(Array相关函数)详解编程语言
- SAP中获取当前用户相关信息的两个函数详解编程语言
- 初探Linux下的stat函数(linuxstat函数)
- 函数Linux中atoi函数的应用(linuxatoi)
- Oracle的MID函数:取字符串的中间部分(oraclemid)
- 妙用Oracle写值函数实现灵活操作(oracle写值函数)
- Oracle中的减函数如何使用(oracle 减函数吗)
- sql数据库不能直接用instr函数
- PHP字符转义相关函数小结(php下的转义字符串)
- PHP危险函数全解析
- js原生态函数中使用jQuery中的$(this)无效的解决方法
- PHP笔记之:日期函数的使用介绍
- php中get_headers函数的作用及用法的详细介绍
- PHP类相关函数的使用详解
- JavaScript数组函数unshift、shift、pop、push使用实例