我想在MDX查询中订购一组结果,其中还包括交叉连接。
我有以下措施和尺寸:
我想创建一个(对应的)Framework和Pathway名称列表,这些名称对应于[Measures]的前25个数字。[Starts]。
我设法使用以下方法输出完整的结果列表:
select [Measures].[Starts] on COLUMNS,
NON EMPTY CrossJoin(
Hierarchize({DrilldownLevel({[Framework].[Pathway Name].Children})}),
Hierarchize({DrilldownLevel({[Framework].[Framework Name].Children})})
) on ROWS
from [DataCube]
但是,我需要按降序对起点进行排序(最好只保留前25个结果)。我几乎尝试了一切,但都失败了。谷歌搜索没有找到任何结果。
答案 0 :(得分:0)
您是否偶然发现TopCount
功能?
select [Measures].[Starts] on COLUMNS,
NON EMPTY
TopCount
(
CrossJoin
(
Hierarchize({DrilldownLevel({[Framework].[Pathway Name].Children})}),
Hierarchize({DrilldownLevel({[Framework].[Framework Name].Children})})
),
25,
[Measures].[Starts]
) on ROWS
from [DataCube]
这里是msdn link。
H2H
答案 1 :(得分:0)
为了提高效率,最好在使用TopCount
函数之前订购该集:
WITH
SET [SetOrdered] AS
ORDER(
{DrilldownLevel([Framework].[Pathway Name].Children)}
*{DrilldownLevel([Framework].[Framework Name].Children)}
,[Measures].[Starts]
,BDESC
)
SET [Set25] AS
TOPCOUNT(
[SetOrdered]
,25
)
SELECT
[Measures].[Starts] on 0,
NON EMPTY
[Set25] on 1
FROM [DataCube];