У меня есть куб «Действия». Размеры - это «время» и «идентификатор действия», а измерения - это «количество действий» и «общее время» и расчетное «среднее время действия». Я пытаюсь рассчитать верхние 5 действий по времени avg и показать изменение с предыдущего дня. я могу сделать это в двух отдельных запросов:MDX: Вычисление времени действия avg и изменение с течением времени, для 5 лучших действий
SELECT {[Measures].[Avg Action Time]} ON COLUMNS,
NON EMPTY TopCount(except([Action ID].members, {[Action ID].[All Action IDs]}), 5, [Measures].[Avg Action Time]) ON ROWS
FROM Actions
WHERE [Time].[2005].[1];
и:
WITH MEMBER [Measures].[Change] AS
([Time].CurrentMember, [Measures].[Number of Actions])/(ParallelPeriod ([Day], 1, [Time].CurrentMember), [Measures].[Number of Actions]),
FORMAT_STRING = 'Percent'
SELECT [Measures].[Change] on COLUMNS,
NON EMPTY [Time].[2005].[1].children on ROWS
FROM [Actions];
Но я не могу понять, как объединить их в один MDX Query. Я пробовал:
WITH MEMBER [Measures].[Change] AS
([Time].CurrentMember, [Action ID].CurrentMember, [Measures].[Avg Action Time])/(ParallelPeriod ([Day], 1, [Time].CurrentMember), [Action ID].CurrentMember, [Measures].[Avg Action Time]),
FORMAT_STRING = 'Percent'
SELECT {[Measures].[Avg Action Time], [Measures].[Change]} ON COLUMNS,
NON EMPTY TopCount(except([Action ID].members, {[Action ID].[All Action IDs]}), 5, [Measures].[Avg Action Time]) ON ROWS
FROM Actions
WHERE [Time].[2005].[1];
но процент изменения всегда бесконечности, так что явно не вычисляя правильно. Каков правильный запрос?