Дисциплина, Аккуратность, Внимание К Деталям, Часть Вторая (Olap, Ssas)



Введение В этой статье я продолжу рассказывать о своем опыте работы с Microsoft Analysis Services. В дополнение к предыдущей статье хочу написать о нестандартных решениях, которые были сделаны в последнем проекте.

Эти решения приблизили меня к Microsoft Analysis Services, я стал больше уважать его и делать с его помощью то, что раньше казалось мне невозможным.



Сумма средних показателей за период

Заказчик запросил сумму средних значений по каждому элементу за период, как показано на рисунке ниже:

Дисциплина, аккуратность, внимание к деталям, часть вторая (OLAP, SSAS)



Дисциплина, аккуратность, внимание к деталям, часть вторая (OLAP, SSAS)

То есть идея в том, что в контексте элементов elem1, elem2, .

, elemN куб вычисляет среднее значение для каждого элемента за выбранный период; во всех остальных случаях рассчитывается сумма.

Требуется изменить поведение куба для одного измерения, а для всех остальных оставить стандартное поведение (в описанном случае стандартное поведение — СУММ).



Решения:

  1. Первый вариант: Для этого варианта вам необходимо создать скрытое измерение [ELEM COPY], просто создав копию [ELEM] и установив для его свойства Visible значение False. Далее в разделе куба «Расчеты» выберите «Новый вычисляемый элемент», как показано на рисунке:

    Дисциплина, аккуратность, внимание к деталям, часть вторая (OLAP, SSAS)

    и в появившемся окне для ввода выражений пишем:
      
       

    iif ( not isleaf([ELEM].

    [ELEM SK].

    currentmember), sum(EXISTING [ELEM COPY].

    [ELEM SK].

    currentmember.Children,[Measures].

    [FCT VAL]), [Measures].

    [FCT VAL] )

    , где [ELEM COPY].

    [ELEM SK] — ключевой атрибут скрытого измерения.

    [Measures].

    [FCT VAL] — это агрегация AvarageOfChildren, т.е.

    при сборке куба мы создали измерение типа AvarageOfChildren и оно автоматически его посчитало.

    Пример создания измерения с агрегацией AvarageOfChildren показан на рисунке ниже:

    Дисциплина, аккуратность, внимание к деталям, часть вторая (OLAP, SSAS)

  2. Решение с использованием ОБЛАСТИ: Это решение мне показал мой коллега, на мой взгляд, его легче понять, хотя и немного сложнее реализовать.

    Что нужно сделать: Перепишите выборку для таблицы фактов: Вместо:

    SELECT [DATE]

Теги: #olap #кубы #кубы #Среднее число детей #сервисы анализа #ssas #mdx #хранилище данных #sql #Интеллектуальный анализ данных #Microsoft SQL Server #Большие данные
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.