|
|
|
Oracle BI - не корректно агрегирует параметр по месяцам
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемые! Помогите разобраться с проблемой. Есть 4 физических табицы: Справочники - 1) Календарь - Time(Дата, НазвМесяца, КодМесяцГод, Год) 2) Цвет стула - Color(ИДТипа, НазвЦвета) 3) Киоск - Kiosk(ИДКиоска, НазвКиоска) Факты - 3) Факт работы "киоска" - KWORK(Дата, ИДКиоска,is_work(0 или 1)) 4) Факт продажи стульев - KSALES(Дата, ИДКиоска, ИДТипа, ШТ) Мне нужен вычисляемый показатель, доля продажи стульев на один приведенный магазин в разрезе цветов стульев. sh = sum(ШТ)/(sum(is_work)/count distinct(Дата)) Встрял на расчете - sum(is_work). Нужно, чтобы для каждого цвета стула рассчитывалось одинаковое число приведенных магазинов. Сейчас для каждого цвета стула, считается разное количество рабочих киоско-дней, в выбранном периоде месяц... Разные значения , получаются потому, что не во все дни продавались стулья определенного цвета, а если пустые продажи стула определенного цвета в определенный день, то и sum(is_work) пустое. И агрегат sum(is_work) за месяц получается не полный. Как сделать, что бы агрегат sum(is_work) не зависел от наличие продаж определенного цвета в определенный день и при этом можно было делить на корректный sum(ШТ) по каждому цвету? На BMM уровне делаю: 1) логическую таблицу (измерение) - "календарь" 2) логическое измерение - Time. Иерархия: Год -> НазвМесяца -> Дата. 3) логическая таблица (измерение) - "Киоск" 4) логическое измерение - Kiosk. Иерархия: Total -> НазвКиоска. 5) логическая таблица (измерение) - "ЦветСтула" 6) логическое измерение - ЦветСтула. Иерархия: Total -> НазвЦвета. 7) логическая таблица (факт) - "Продажи". Логические колонки для "Продажи" без агрегации: Дата, ИДТипа, ИДКиоска. Логические колонки для "Продажи" с агрегацией по правилу sum: ШТ, CNT_K Логическая таблица "Продажи" имеет два Logical Table Source: KWORK и KSALES. CNT_K мапируется к полю is_work из KWORK как есть, на вкладке content ничего не указываю. На вкладке CNT_K levels указываю уровни Total для измерений: Kiosk и ЦветСтула. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 13:24 |
|
||
|
Oracle BI - не корректно агрегирует параметр по месяцам
|
|||
|---|---|---|---|
|
#18+
Эх.. Чувствую надо было с простого вопроса начать.... Предположим есть таблица фактов с 2 измерениями. Как описать BMM, чтобы было три логических таблиц (измерений), и факт при этом агрегировался по всем трем измерениям. По существующим двум измерениям, факт рассчитывался как есть на основе существующих данных. А по третьему измерению принимал значения агрегата двух первых измерений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 16:52 |
|
||
|
Oracle BI - не корректно агрегирует параметр по месяцам
|
|||
|---|---|---|---|
|
#18+
Есть кто смелый и отчаянный, попробовать разобраться в реализации задачки? Мне думается можно создать отдельную logical table и туда накидать вычисляемые показатели. Я так делал, но при разворачивании CNT_K по измерению ЦветСтула->НазвЦвета, показатель ругается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2017, 10:47 |
|
||
|
Oracle BI - не корректно агрегирует параметр по месяцам
|
|||
|---|---|---|---|
|
#18+
Evgeny2, Evgeny2, Не могу понять физический смысл формулы sum(ШТ)/(sum(is_work)/count distinct(Дата)), мне кажется, она неверная. Мне представляется два варианта (как минимум), в зависимости от требуемого результата: 1. Процент в среднедневных продажах, учитывая только рабочие дни магазинов: sum(шт)/sum(is_work)/TOTAL(sum(шт)/sum(is_work)) (в знаменателе - сумма!) 2. Простая доля продаж в общем объеме: sum(шт)/TOTAL(sum(шт)) Расчет на уровне анализа, не ВММ! В любом случае, у меня есть подозрение, что стоит только разделить общий факт на "Продажи" и "Рабочие дни магазинов" - и все расчеты начнут работать корректно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2017, 10:20 |
|
||
|
Oracle BI - не корректно агрегирует параметр по месяцам
|
|||
|---|---|---|---|
|
#18+
Evgeny2, А из какой таблицы берете count distinct(Дата) ? есть подозрение, что из KSALES, а надо из KWORK, чтобы count distinct(Дата) не зависело от цвета стула, ну и total level для него выбрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2017, 10:27 |
|
||
|
Oracle BI - не корректно агрегирует параметр по месяцам
|
|||
|---|---|---|---|
|
#18+
После долгих ковыряний, я нашел корень зла! Проблема была в том, что я для логической колонки в качестве Sort order column, указал поле с датами. А нужно было, указать порядковый номер месяца.... Поэтому агрегат по месяцу считался не верно - бралось значение первого дня. Спасибо max_kov и terna за участие! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 08:39 |
|
||
|
|

start [/forum/topic.php?fid=49&fpage=35&tid=1858387]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 378ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...