#gooddata
#хорошие данные
Вопрос:
Я пытаюсь создать метрику, ориентированную на максимальное количество рабочих дней и сотрудников. Не могли бы вы помочь мне понять, чего мне не хватает? У меня есть следующее:
- Факт с именем Рабочий день (значения 1 и 0).
- Размеры, прилагаемые к факту: Компания, Сотрудник, Дата
Компании, по сути, являются нашими дочерними компаниями в разных странах, где действуют разные праздничные дни, что приводит к различиям в максимальных доступных рабочих днях.
В своем отчете я хочу видеть показатели:
A: количество рабочих дней на одного сотрудника за выбранный период времени
B: количество МАКСИМАЛЬНЫХ рабочих дней, которые у любого сотрудника были в компании sae, и за один и тот же период времени (в основном, сколько рабочих дней было доступно, если конкретный сотрудник работал во все возможные дни)
C: % от A/B
У меня возникли проблемы с созданием показателя для B, в котором я хочу найти максимальное количество рабочих дней, которые были у любого сотрудника в той же компании в течение выбранного периода времени.
Ближе всего к тому, что мне нужно, это когда я определяю метрику B следующим образом:
SELECT MAX(SELECT SUM(Workdays) BY Employee WITHOUT PF EXCEPT Date (Worked Date)) BY Company ALL OTHER
Однако, как только я отфильтрую отчет для любой подгруппы (конкретного сотрудника, команды и т.д.), Выбор повлияет на значение показателя B. Например, если я отфильтрую одного сотрудника, который проработал всего 10 дней из максимальных 20, значение показателя B также покажет 10.
У вас есть какие-нибудь предложения, что я упускаю?
Я отдаю себе отчет в том, что, возможно, не лучшая идея определять максимальное количество рабочих дней на основе того, сколько дней кто-то проработал. Потому что вполне возможно, что, возможно, даже тот человек с самым большим номером был доступен не во все дни. В моей дорожной карте указано отказаться от этого подхода и импортировать шаблоны праздников для каждой компании, но сейчас я хотел бы рассмотреть этот подход.
Ответ №1:
Значение БЕЗ PF также должно быть применено к внешней МАКСИМАЛЬНОЙ метрике. Ваша метрика должна работать, когда вы перемещаете ее в самый конец метрики:
SELECT MAX(SELECT SUM(Workdays) BY Employee) BY Company ALL OTHER WITHOUT PF EXCEPT Date (Worked Date)
В зависимости от вашей конкретной модели вам может потребоваться включить компанию в свой отчет.
Другим решением (если у вас нет праздничных календарей) может быть подсчет рабочих дней как дней, в течение которых работал хотя бы один сотрудник компании (что-то вроде SELECT COUNT(Date (Worked Date)) BY Company, Date (Worked Date), ALL OTHER WHERE (SELECT SUM(Workdays)) gt; 0)