Условный оператор в метрике не работает должным образом в отчете Gooddata - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть этот показатель:

metric_which_is_not_working.png

  • Первое значение прямо над "if" должно рассматриваться только для дат после 1 сентября ;
  • Второе значение прямо над "else" должно рассматриваться только для старых дат ( до 1 сентября ).

Что происходит, когда я помещаю атрибут «час» в отчет, значение выше оператора «if» считается даже для старых дат.

В левом отчете используется та же метрика, но без атрибута часа:

same_metric_with_different_values.png

Почему это случилось? Могу ли я сделать что-то, чтобы принести правильные значения?

OBS: я также пытался использовать оператор case вместо слова if, но получаю тот же результат.

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Я решил эту проблему, удалив условие «если» (которое, похоже, не работает со многими фильтрами в отчете) и включив сумму 2 метрик, содержащих в каждом из них соответствующий фильтр даты:

Новая метрика, использующая ГДЕ, а не ЕСЛИ

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

0 голосов
/ 15 сентября 2018

Вы должны поместить функцию агрегирования (в данном случае SUM) вокруг оператора CASE, а не внутри него.Причина в том, что вы, вероятно, хотите оценить условие в таблице фактов, а не в результирующей функции агрегирования.

...