Ssas 为什么DISTINCTCOUNT不提供不同成员的计数,但count(distinct(NONEMPTY())正在工作?
这是我在SO上发布的另一篇文章的延续。所以发生的事情是CountNoneEmpty似乎能让我得到count,但DISTINCTCOUNT却不能。我运行函数的值集实际上是不同的。以下是我正在使用的查询:Ssas 为什么DISTINCTCOUNT不提供不同成员的计数,但count(distinct(NONEMPTY())正在工作?,ssas,mdx,ssas-2012,Ssas,Mdx,Ssas 2012,这是我在SO上发布的另一篇文章的延续。所以发生的事情是CountNoneEmpty似乎能让我得到count,但DISTINCTCOUNT却不能。我运行函数的值集实际上是不同的。以下是我正在使用的查询: WITH MEMBER Measures.[x] AS Count( NONEMPTY( [Request].[RequestID].children , {([Measures].[Average of Late Tasks])} )
WITH MEMBER Measures.[x] AS
Count(
NONEMPTY(
[Request].[RequestID].children
, {([Measures].[Average of Late Tasks])}
)
)
MEMBER Measures.[y] AS
DISTINCTCOUNT((
[Request].[RequestID].children
, {([Measures].[Average of Late Tasks])}
) )
WITH MEMBER Measures.[z] AS
Count(DISTINCT
NONEMPTY(
[Request].[RequestID].children
, {([Measures].[Average of Late Tasks])}
))
)
SELECT
{Measures.[x], Measures.[y]} ON 0,
[Calendar].[CalendarMonthName].children ON 1
FROM [Model]
WHERE
([Calendar].[CalendarYear].&[2014],
[User].[UserID].&[033343])
输出
问题是,为什么COUNTNONEMPTY有效,而DISTINCTCOUNT无效?当请求ID都是不同的时也是如此
例如,我检查了AugustCount=6月份的RequestId,请参见上面的结果
我运行了以下MDX:
SELECT
[Measures].[Average of Late Tasks] ON 0,
non empty ([Calendar].[CalendarMonthName].&[August], [Request].[RequestID].children) ON 1
FROM [Model]
WHERE
([Calendar].[CalendarYear].&[2014],
[User].[UserID].&[033343])
输出
这意味着它们都是不同的请求!然而,DISTINCTCOUNT返回0。背景里发生了什么 NonEmpty是一个具有一个或两个参数的函数,这两个参数都应该设置。另一方面,DistinctCount是一个只有一个参数的函数,该参数应该是一个集合。不管括号中的构造是什么
([Request].[RequestID].children
, {([Measures].[Average of Late Tasks])}
)
是的,它不是一个格式良好的集合定义。您可能希望使用什么来代替
DISTINCTCOUNT((
[Request].[RequestID].children
, {([Measures].[Average of Late Tasks])}
) )
可能是
DISTINCTCOUNT(Filter(
[Request].[RequestID].children
, Not(IsEmpty([Measures].[Average of Late Tasks]))
) )
检查MDX中的空值。您不能使用=,因为在数值上下文中,NULL被=,视为0
无论如何,我会假设这比其他两个解决方案慢。+1这是一个有趣的问题-希望他们能给出答案。它仍然给出零。
DISTINCTCOUNT((
[Request].[RequestID].children
, {([Measures].[Average of Late Tasks])}
) )
DISTINCTCOUNT(Filter(
[Request].[RequestID].children
, Not(IsEmpty([Measures].[Average of Late Tasks]))
) )