Опорная размерность — это размерность, по которой производится расчет сложного вида факта, если он не производится по уровню. Обычно такая размерность размещается в области данных как последняя вложенная, а расчеты проводятся по ней с учетом размерностей на предыдущих уровнях иерархии.
Допустим, нам требуется получить значения средней суммы чека отдельно для дебетовых и для кредитных карт, а также для каждой группы дебетовых и кредитных карт. Для этого нам нужно последовательно вынести влево размерности «Тип карты», «Группа карт» и «ID чека», показать факт «Сумма покупок», изменить его вид на «Среднее», а тип расчета на расчет по опорной размерности «ID чека». Чтобы выбрать опорную размерность для факта, нужно кликнуть на названии факта правой кнопкой мыши, в выпадающем списке навести курсор мыши на опцию «Тип расчета», затем на опцию «Размерность», а затем выбрать в списке нужную размерность:
Обратите внимание, что список размерностей на рисунке выше разделен горизонтальной линией. Над линией всегда отображаются только те размерности, которые вынесены в область данных, а под линией отображаются все остальные размерности этой мультисферы. |
Теперь факт «Сумма покупок» рассчитывается по опорной размерности «ID чека», а в левой части поля с названием факта отображается индикатор в виде цветной вертикальной полосы. Такой же индикатор отображается и для выбранной размерности:
Значение в строке «CREDIT» — это средняя сумма чека за покупки, оплаченные кредитными картами.
Если раскрыть элемент размерности «CREDIT», по каждой группе карт отобразятся значения средней суммы чека за покупки, оплаченные кредитными картами этой группы карт.
Необходимо помнить, что порядок размерностей в мультисфере имеет значение. В рассматриваемом примере есть группа карт, содержащая как кредитные, так и дебетовые карты — это элемент размерности «MasterCard Standard»:
Таким образом, в примере выше покупки, оплаченные кредитными картами «MasterCard Standard», рассматривались отдельно от покупок, оплаченных дебетовыми картами «MasterCard Standard». Если же мы поменяем размерности «Тип карты» и «Группа карт» местами, элемент «MasterCard Standard» будет отображаться в единой строке, а значение средней суммы чека для этого элемента будет вычисляться с учетом и дебетовых, и кредитных карт вместе:
При необходимости можно рассчитывать сразу несколько фактов по опорной размерности. Например, если нас интересует не только средняя сумма чека, но и максимальная сумма чека, то кроме факта вида «Среднее» нужно отобразить в рабочей области факт вида «Максимум» и установить для обоих фактов расчет по опорной размерности «ID чека»:
Опорная размерность может быть не вынесена в рабочую область. Однако при этом расчеты выполняются так, как если бы опорная размерность занимала место последней вложенной размерности — крайнее правое при расчете по вертикали и самое нижнее при расчете по горизонтали.
Два окна мультисферы на рисунке ниже имеют практически одинаковую конфигурацию, но в первом окне опорная размерность «Категория покупки» находится в области данных, а во втором — на панели размерностей и фактов. Сравним значения факта в этих окнах:
В случае расчета нескольких фактов по нескольким разным опорным размерностям, не вынесенным в область данных, важно запомнить порядок, в котором эти размерности выбирались для расчета фактов. От этого порядка зависит положение каждой опорной размерности в таблице, с учетом которого будут выполняться расчеты. Размерность, выбранная первой, будет соответствовать положению в иерархии таблицы выше, чем размерность, выбранная второй, и т. д. |
Рассмотрим пример, в котором мы сначала настроили расчет для «Факта 1», а затем для «Факта 2»:
Расчеты будут соответствовать такой конфигурации окна мультисферы, где размерность «ID клиента», по которой выполняется расчет для «Факта 2», находится правее (и ниже в иерархии), чем размерность «Категория покупки», по которой выполняется расчет для «Факта 1»:
В случае перемещения в область данных одной из опорных размерностей при расчете по нескольким опорным размерностям значения фактов могут быть пересчитаны. Это произойдет, если конфигурация таблицы после вынесения размерности в область данных изменится относительно исходной конфигурации таблицы, которая была настроена до вынесения опорной размерности в область данных. Опорная размерность, перемещаемая в область данных, занимает положение выше в иерархии таблицы, чем размерности, оставшиеся на панели размерностей и фактов. |
Вернемся к примеру, в котором мы последовательно настроили расчет для «Факта 1», а затем для «Факта 2». Если после этого мы вынесем в область данных размерность «Категория покупки», соответствующую «Факту 1», выбранную для расчета первой и занимающую положение в иерархии таблицы выше, чем размерность, выбранная второй, то значения фактов не изменятся:
Если же после того, как мы настроили расчет для «Факта 1», а затем для «Факта 2», мы вынесем в область данных размерность «ID клиента», соответствующую «Факту 2», выбранную для расчета второй и занимающую положение в иерархии таблицы ниже, чем размерность, выбранная первой, значения фактов изменятся, так как размерность «ID клиента» окажется выше в иерархии, чем размерность «Категория покупки», то есть порядок размерностей поменяется относительно того, который был установлен, пока размерности не были вынесены в рабочую область:
Аналогичным образом на конфигурацию окна мультисферы и, соответственно, на расчеты влияет порядок перемещения опорных размерностей из области данных на панель размерностей и фактов. Размерность, убираемая из области данных, всегда занимает положение, соответствующее последней вложенной размерности. |
Если в нашем исходном примере с «Фактом 1» и «Фактом 2» из области данных убрать последнюю вложенную опорную размерность «ID клиента», расчеты не изменятся:
Поскольку размерность, убираемая из области данных, занимает положение, соответствующее последней вложенной размерности, а размерность «ID клиента» и так занимала положение последней вложенной, она так и останется ниже в иерархии таблицы, чем размерность «Категория покупки», поэтому в данном случае значения фактов не изменятся.
Если же после этого убрать еще и размерность «Категория покупки», расчеты поменяются, так как размерность «Категория покупки» при перемещении из области данных займет положение последней вложенной размерности и теперь окажется ниже в иерархии таблицы, чем размерность «ID клиента»:
Положение опорных размерностей, как вынесенных в рабочую область, так и находящихся на панели размерностей и фактов, влияет на значения фактов, даже если они рассчитываются по уровню. |
Добавим к нашему исходному примеру с «Фактом 1» и «Фактом 2» еще один факт, «Факт 3». Установим для него вид «Количество» и расчет по уровню 1 (по умолчанию). Раскроем у размерности «Тип карты» элемент «CREDIT»:
Если бы в таблице не было фактов с расчетом по опорной размерности, то при раскрытии элемента «CREDIT» в строках, соответствующих элементам размерности «Группа карт», для «Факта 3» с расчетом по уровню 1 отображались бы пустые или нулевые значения, так как у размерности «Группа карт» не было бы вложенных размерностей. Но в данном случае вложенными являются опорные размерности, даже если они находятся на панели размерностей и фактов. Таким образом, в строках для каждой группы кредитных карт «Факта 3» отображается количество категорий покупки, оплаченных кредитными картами каждой группы карт.
Вспомним, что расчет для «Факта 1» мы настраивали первым, а для «Факта 2» — вторым, значит, размерность «Категория покупки» находится в иерархии таблицы выше, чем размерность «ID клиента», и является первой вложенной для размерности «Группа карт», следовательно, расчет для элементов размерности «Группа карт» проводится по размерности «Категория покупки». Переместив размерность «Категория покупки» на соответствующее место в область данных, можно убедиться, что значения фактов не поменялись:
Если же вместо «Категории покупок» мы вынесем в рабочую область размерность «ID клиента», то порядок опорных размерностей изменится и значения для всех фактов пересчитаются. Первой вложенной размерностью для «Группы карт» станет размерность «ID клиента», и значения «Факта 3» для каждой группы кредитных карт будут отображать количество клиентов, оплативших покупки кредитными картами этой группы:
Расчет по опорной размерности не может производиться при одновременном соблюдении следующих условий:
В таком случае будет отображаться окно с ошибкой. |
|