Power BI 统计整行唯一出现次数(SQL中Count(*)等效实现方法)
Power BI 实现整行重复次数统计的方案
你要实现的是类似SQL中COUNT(*) OVER (PARTITION BY 所有字段)的窗口函数效果,可通过以下两种方案实现:
DAX 计算列方案(适用于数据模型层计算)
在你的表中新建计算列,输入以下公式即可:
Counts = CALCULATE( COUNTROWS('你的表名'), ALLEXCEPT('你的表名', '你的表名'[field_1], '你的表名'[field_2], '你的表名'[field_3]) )
说明:公式中的'你的表名'替换为你实际的表名即可,如果需要匹配更多字段判断行相同,只需在ALLEXCEPT参数中追加对应的字段即可。
Power Query(M语言)方案(适用于数据清洗层提前计算)
该方案更适合大数据量场景,执行效率更高,操作步骤如下:
- 进入对应表的Power Query编辑界面,选中所有判断行重复的字段(本次为field_1、field_2、field_3)
- 点击顶部「转换」选项卡的「分组依据」,设置新列名为
Counts,操作选择「行计数」,点击确定 - 点击顶部「主页」选项卡的「合并查询」,将当前分组后的表与原始表做内连接,关联条件为三个判断重复的字段全部匹配
- 展开合并后表的列,仅保留
Counts字段即可
如果要直接用自定义列实现,可添加自定义列输入以下代码,将#"上一步骤名"替换为你当前操作的上一步步骤名:
Table.RowCount(Table.SelectRows(#"上一步骤名", (x) => x[field_1] = [field_1] and x[field_2] = [field_2] and x[field_3] = [field_3]))
内容的提问来源于stack exchange,提问作者Kyle Strougo
相关产品推荐
相关产品推荐

