带有TOPCOUNT between date range的MDX查询返回带有一些空值的top

带有TOPCOUNT between date range的MDX查询返回带有一些空值的top,mdx,pentaho,olap,olap-cube,mondrian,Mdx,Pentaho,Olap,Olap Cube,Mondrian,我正在使用MDX查询来获取两个日期之间最受欢迎的前10个产品。奇怪的是,结果是由一些在该日期范围内喜欢的产品和一些根本没有喜欢的产品组成的。以下是查询: SELECT { [Measures].[Likes] } ON COLUMNS, { TOPCOUNT([Products].[Name].Members, 10, [Measures].[Likes]) } ON ROWS FROM [Likes] WHERE ( [Date].[2014].[3].[29]:[Date].[2014].[

我正在使用MDX查询来获取两个日期之间最受欢迎的前10个产品。奇怪的是,结果是由一些在该日期范围内喜欢的产品和一些根本没有喜欢的产品组成的。以下是查询:

SELECT
{ [Measures].[Likes] } ON COLUMNS,
{ TOPCOUNT([Products].[Name].Members, 10, [Measures].[Likes]) } ON ROWS
FROM [Likes]
WHERE ( [Date].[2014].[3].[29]:[Date].[2014].[4].[5] )
结果如下:

               [Measures].[Likes]
[Product].[XX]
[Product].[XX]
[Product].[XX]          139
[Product].[XX]
[Product].[XX]           1
[Product].[XX]
[Product].[XX]
[Product].[XX]          125
[Product].[XX]          111
[Product].[XX]           1
例如,如果我将top limit更改为20,结果将有更多的产品具有like,但也有更多的空产品,并且没有订购(通常是像top一样)

使用NON-EMPTY使查询只返回5个结果,而不是10个,并且仍然没有排序

谢谢

试试这个查询

选择
0上的{[Measures].[Likes]},
标题(订单([Products].[Name].[Measures].[Likes],DESC]),10)在1
来自[喜欢]

其中([Date][2014][3][29]:[Date][2014][4][5])

哇,这很有效,谢谢!。但我不明白为什么TOPCOUNT没有。有线索吗?还有,HEAD(顺序)的性能是否与TOPCOUNT类似?与BottomCount函数一样,TOPCOUNT函数总是打破层次结构。Source HEAD更快(Source)如果我做对了,这意味着它不会正确地考虑层次结构,而是按照指定的数值表达式排序。但在我的示例中,它不是按照数值表达式排序。我这里缺少什么?只有当日期在不同的月份时才会发生这种情况。