Я пытаюсь создать свою первую схему куба olap для сервера Mondrian. Я придумал создать представление в виде таблицы фактов с несколькими объединениями, чтобы поместить в нее внешние ключи, допустим, это выглядит так:
SELECT call.id, record.user, topic.id, session.id, user.id, session.end, session.start FROM calls call
LEFT JOIN call_records record ON (record.call_id = call.id)
LEFT JOIN topis topic ON (topic.id = record.topic_id)
LEFT JOIN login_sessions session ON (record.session_id = session.id)
LEFT JOIN users user ON (session.user_id = user.id)
Я также создал Измерение под названием Users
, Topics
(и некоторые другие, но я стараюсь не усложнять), и все работает нормально, и я получил всю необходимую информацию, кроме сводки рабочего времени по Теме или для каждого пользователя.
Я не могу просто суммировать session.end - session.start
, потому что таблица сеансов объединена, и один и тот же сеанс повторяется несколько раз.
Кроме того, я не думаю, что делаю это так, как должен.
Можете ли вы помочь мне сделать это правильно? Спасибо