Вы можете сделать это так: во-первых, просто возьмите топ N (скажем, топ-5 участников), после этого возьмите топ-10 участников, кроме топ-5.После этого возьмите 15 лучших членов, кроме 10 лучших, и так далее ...
Вот формула для первых 5, упорядоченная [SomeAmount], которая является одной из мер из куба
SELECT
{ [Measures].[SomeAmount] } ON COLUMNS,
EXCEPT(TopCount([Date].members, 5,[Measures].[SomeAmount] ),TopCount([Date].members, 0,[Measures].[SomeAmount] )) ON ROWS
FROM [cube]
и для следующих пяти (первые пять пропущены):
SELECT
{ [Measures].[SomeAmount] } ON COLUMNS,
EXCEPT(TopCount([Date].members, 10,[Measures].[SomeAmount] ),TopCount([Date].members, 5,[Measures].[SomeAmount] )) ON ROWS
FROM [cube]
И так далее ...
Если у вас есть куб AdventureWorks, вы можете попробовать этот запрос там:
SELECT
{ [Measures].[Internet Order Count] } ON COLUMNS,
EXCEPT(TopCount([Date].[Calendar].members, 10, [Measures].[Internet Order Count]),
TopCount([Date].[Calendar].members, 5,[Measures].[Internet Order Count] )) ON ROWS
FROM [Adventure Works]
А также, например, из вашего комментария, где у вас есть перекрестное соединение:
SELECT
{Department.members} on COLUMNS,
EXCEPT(TopCount({[Product].[Status].members}*{Date.[Calendar].members}, 10),
TopCount({[Product].[Status].members}*{Date.[Calendar].members}, 5)) on ROWS
FROM [Adventure Works]
Вы можете попробовать это и в Adventure Works.
А такжедля вашего примера из комментария:
SELECT EXCEPT(TopCount({dim1.members}*{dim2.members},10),
TopCount({dim1.members}*{dim2.members},5)) on ROWS,
{dim3.members} on COLUMNS
FROM [cube]
Надеюсь, это поможет.