MDX-запрос к порядку (и topfilter) результатов после / с перекрестным соединением
Я хотел бы заказать набор результатов в запросе MDX, который также включает перекрестное соединение.
У меня есть следующие меры и размеры:
- [Меры]. [начинается]
- [Framework]. [Framework Name]
- [Framework]. [Имя пути]
Я хотел бы создать список (соответствующих) имен Framework и Pathway, которые соответствуют 25 верхним числам [Measures].[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 результатов). Я перепробовал почти все и потерпел неудачу. Поиск в Google не нашел результатов.
2 ответа
Для эффективности лучше заказать набор перед использованием 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];
Вы наткнулись на 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.
H2H