Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 r2 要排除NULL的不同计数_Sql Server 2008 R2_Ssas_Mdx - Fatal编程技术网

Sql server 2008 r2 要排除NULL的不同计数

Sql server 2008 r2 要排除NULL的不同计数,sql-server-2008-r2,ssas,mdx,Sql Server 2008 R2,Ssas,Mdx,是否有一种方法可以创建一个计算出的度量值,该度量值可以进行不同的计数,但不包括空值?例如,如果我有:10,20,20,null;不同的计数是3,但我能得到2的答案吗?放一个where条件 如果度量值不为空,您可以尝试以下方法: with cte ( "counter" ) as ( select 1 as "counter" from "YOURTABLE" group by "COLUMNNAME"

是否有一种方法可以创建一个计算出的度量值,该度量值可以进行不同的计数,但不包括空值?例如,如果我有:10,20,20,null;不同的计数是3,但我能得到2的答案吗?

放一个where条件 如果度量值不为空,您可以尝试以下方法:

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"

有同样的问题-令人惊讶的是微软忽略了它…看起来唯一的解决方案是为不同的计数度量值组构建一个视图


谢谢你的回答。然而,我在这里找到了一个最适合我需要的解决方案:

通过使用以下命令创建计算成员:

count(nonempty({[DimName].[HierarchyName].[LevelName].members-[DimName].[HierarchyName][All].UNKNOWNMEMBER},[Measures].[MyMeasure]))

只需将where value not null和value“!=””相加即可

难道不能用适当的where子句消除null吗?我使用GUI的新度量值进行了上述不同计数。至于创建计算的度量值,我需要更多的帮助。where条件消除了null,但结果是3-OP要求2。我想OP询问的是MDX,你说的是SQL:)这也适用于我。