DISTINCT(列)
返回由一列组成的表,其中包含与指定列不同的值。 换言之,会删除重复值并且仅返回唯一的值。
注意
此函数不能用于将值返回到工作表上的单元格或列中;但可以将 DISTINCT 函数嵌套在公式中以获取非重复值列表,可以将这些值传递给其他函数并对其进行计数、求和或用于其他操作。
语法
DISTINCT(<column>)
parameters
术语 | 定义 |
---|---|
列 | 要从其中返回唯一值的列。 或者返回列的表达式。 |
返回值
唯一值的列。
备注
DISTINCT 的结果会受到当前筛选上下文的影响。 例如,如果在以下示例中使用公式来创建一个度量值,那么只要对表进行筛选以仅显示特定区域或某个时间段,结果就会更改。
在已计算的列或行级安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
相关函数
有另一个版本的 DISTINCT 函数 DISTINCT (table),它可通过删除其他表或表达式中的重复行来返回表。
VALUES 函数类似于 DISTINCT;它还可用于返回唯一值的列表,并且通常将返回与 DISTINCT 完全相同的结果。 但是,在某些上下文中,VALUES 将返回一个额外的特殊值。 有关详细信息,请参阅 VALUES 函数。
示例
下面的公式会计算通过 Internet 渠道生成了订单的唯一客户的数量。 下表说明了将公式添加到报表后可能产生的结果。
= COUNTROWS(DISTINCT(InternetSales_USD[CustomerKey]))
不能将 DISTINCT 返回的值列表直接粘贴到列中。 相反,可以使用列表将 DISTINCT 函数的结果传递给对值进行计数、筛选或聚合的其他函数。 为了尽可能简化示例,此处的非重复值表已经传递给了 COUNTROWS 函数。
行标签 | Accessories | Bikes | Clothing | 总计 |
---|---|---|---|---|
2005 | 1013 | 1013 | ||
2006 | 2677 | 2677 | ||
2007 | 6792 | 4875 | 2867 | 9309 |
2008 | 9435 | 5451 | 4196 | 11377 |
总计 | 15114 | 9132 | 6852 | 18484 |
另请注意,结果不是累加的。 也就是说,2007 年的唯一客户总数不是该年购买“配件”、“自行车”和“服装”的唯一客户数的总和 。 原因是可能会将一位客户计入多个组中。