You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query中DISTINCT与UNIQUE的区别及相关逻辑验证问询

Power BI 中 DISTINCT、UNIQUE 与 SQL 逻辑的对比

先澄清 SQL 中的逻辑误区

你提到的 select count(*) from table 其实是统计所有行(包含空值行),但 SQL 里不存在 count(distinct *) 的写法——DISTINCT 只能针对列或表达式,不能直接跟 *。正确的逻辑对比是:

  • COUNT(DISTINCT column):排除空值(NULL),只统计非空的唯一值,重复项不计,非重复项计1
  • COUNT(*):统计所有行,不管列是否有空值,每行计1

Power BI 中 DISTINCT 的逻辑

Power BI 里的 DISTINCT 函数(常用写法是 COUNTROWS(DISTINCT(Table[Column])))和 SQL 的 COUNT(DISTINCT column) 逻辑不同:

  • 它会包含空值(NULL)和空白字符串(""),空值会被算作一个独立的唯一项,空白字符串则是另一个。
  • 重复值只计1,非重复值计1,这个计数逻辑和 SQL 一致,但空值处理相反。

Power BI 中 UNIQUE 的作用

UNIQUE 就是用来统计不重复值的数量,它和 DISTINCT 的核心逻辑几乎完全相同:

  • 同样会统计空值和空白字符串,重复项只计1。
  • 唯一区别是在直接查询模式下,UNIQUE 会尽量把计算推送到数据源执行,而 DISTINCT 可能在本地处理;如果是导入模式,两者的结果完全一致。

空值与空白值的统一处理

Power BI 中的 DISTINCT 和 UNIQUE 都会将空值(NULL)和空白字符串("")视为两个不同的唯一项,不会忽略任何一个。


内容的提问来源于stack exchange,提问作者variable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 02:51:03