09.6 理解DISTINCT
# DISTINCT
语法结构
DISTINCT ( )用列作为参数时,DISTINCT返回一个单列的表,其中包含列的所有不重复值。用表表达式作为参数时,返回具有不重复值的列组合,删除重复行。DISTINCT函数允许将列名或任何有效的表表达式作为其参数,而VALUES函数只接受列名或物理表作为参数## 小测试
Numbers表基于上图中的Numbers表,以下三个度量值分别返回什么结果?度量值A =COUNTROWS(ALL(Numbers))度量值B =COUNTROWS(ALL(Numbers[Color],Numbers[Quantity]))度量值C =COUNTROWS(DISTINCT(Numbers))答案和解析:
- 度量值A等于3,本例中ALL使用表作为参数,返回Numbers表的所有行,你可以理解为表有一列隐式的不重复ID,ALL考虑此ID列。
- 度量值B等于2,本例中ALL只考虑两列,去重后只有两行。
- 度量值C等于2,DISTINCT可以执行对表的去重,即使是物理表也是如此。
DISTINCT 和 VALUES的区别
两个函数功能相似,都可以返回不重复值,但对于关系的参照完整性,两个函数具有不同的行为,详细内容请参考VALUES函数中的专题介绍。