有没有办法创建一个可以执行不同计数但不包括空值的计算度量?例如,如果我有:10、20、20、空;非重复计数是 3,但我的答案是 2 吗?
放置一个 where 条件对于度量值不为 null
您可以尝试以下方法:
with cte ( "counter" ) as
(
select
1 as "counter"
from
"YOURTABLE"
group by
"COLUMNNAME"
having ( "COLUMNNAME" IS NOT NULL )
)
select SUM( "counter" ) from cte
@编辑:
相当容易的变体:
SELECT COUNT( DISTINCT "COLUMNNAME" ) FROM "TABLENAME"
有同样的问题 - 令人惊讶的是微软忽略了它......看起来唯一的解决方案是为不同的计数度量值组构建视图
http://www.sqlservercentral.com/Forums/Topic810069-17-1.aspx#bm1213461
谢谢你的所有答案。但是,在这里我找到了一个最适合我需求的解决方案:http://richardlees.blogspot.com/2008/10/alternative-to-physical-distinct-count.html
通过使用以下内容创建计算成员:
count(nonempty({[DimName].[HierarchyName].[LevelName].members-[DimName].[HierarchyName][All].UNKNOWNMEMBER},[Measures].[MyMeasure]))
只需添加值不为空的地方和值"!=''"就可以解决问题