MDX中Filter 与Exist的区别

Posted 大叔聚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MDX中Filter 与Exist的区别相关的知识,希望对你有一定的参考价值。

 

 

 

 

获得一个集合,这个一般用来筛选出一个自定义的set,比如在中国的餐厅

该set返回所有MSDNteam下并且在Fact Thread度量上有记录的products

用Exists实现

select

Exists(

[Dim Queue].[Product - Queue].MEMBERS,

[Dim Engineer].[Team - Engineer].[Team Name].&[MSDN],

"Fact Thread"

)

on 0 from Palladium

用Filter实现

select

Filter

(

([Dim Engineer].[Team - Engineer].[Team Name].&[MSDN],[Dim Queue].[Product - Queue].MEMBERS),

[Measures].[Incoming thread number] > 0

)

on 0 from Palladium

Filter返回的set有两个层次,Queue和Team

Exists返回的set只有Queue这一个层次。Exist返回的结果集比较干净。

但Exists的缺点是只能判断一个度量组在这个维度上是否有值,而不能比较具体的值。

如果我们许多对具体值来过滤,又只想返回某一个维度的set的话,就需要综合这两种做法了。

select

Filter(

Exists(

[Dim Queue].[Product - Queue].MEMBERS,

[Dim Engineer].[Team - Engineer].[Team Name].&[MSDN]

,"Fact Thread"

)

, [Measures].[Incoming thread number] > 0

)

on 0 from Palladium

希望这篇文章能帮到你。

以上是关于MDX中Filter 与Exist的区别的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中 in和exist区别

oracle中in和exist的区别

MDX 查询:如果与其他维度无关,如何在查询结果中显示虚拟集?

在SQL语句中,in和exist的区别是啥?

django orm中 get 与filter的区别

MDX 语法:Period.Financial Year.Financial Year 和 Period.Financial Year.Children 之间的区别?