MDX эквивалентен SQL GROUP GROUP для исключения дублирующихся строк - PullRequest
1 голос
/ 02 апреля 2011

В моем кубе есть таблица фактов, содержащая строку для каждой модификации, внесенной в любую сущность.Что мне нужно, это мера, которая будет возвращать количество объектов на основе выбранных измерений.Поэтому, если пользователь выбирает месяц из измерения даты, то мера должна возвращать количество сущностей, которые были изменены в этом месяце (а не количество модификаций).

В SQL это будет примерно так:

SELECT EntityID, COUNT(*)
FROM FactTable
WHERE Date BETWEEN X AND Y
GROUP BY EntityID

Как вы можете сделать это в MDX?Конечно, это был бы очень распространенный сценарий с кубиками.

1 Ответ

3 голосов
/ 02 апреля 2011

Ваш запрос t-sql эквивалентен запросу mdx:

select 
    [Measures].[<Fact rows count measure>] on columns, 
    <Entity dimension members> on rows 
from [<Cube Name>] 
where (<month member>)

В приведенном выше запросе [показатель количества строк фактов] будет мера с формулой агрегации. Количество - количество строк. Однако, если вам нужночтобы вернуть различное количество элементов сущности при разрезании на другое измерение, у вас есть несколько вариантов:

  1. создать отдельную меру подсчета для ключа entityID
  2. создать вычисляемую меру свыражение: count (существует (существует [Entity]. [Entity]. [Entity] .MEMBERS ,, «Имя группы измерений»))

HTH, Hrvoje Piasevoli

...