Вычисленное поле Data Studio Неверная формула - Неверное входное выражение. - Не удалось проанализировать оператор CASE - PullRequest
0 голосов
/ 15 января 2020

Есть мысли, почему это происходит?

CASE 
WHEN REGEXP_MATCH(Event Label,'Registrate ahora')
THEN 'Registrate ahora'
ELSE REGEXP_REPLACE(Event Label,'.*:','')
END

Ошибка:

Invalid formula - Invalid input expression. - Failed to parse CASE statement.

1 Ответ

0 голосов
/ 25 января 2020

Ошибка синтаксического анализа, скорее всего, вызвана тем, что CASE WHEN не принимает вашу функцию REGEXP_REPLACE в качестве действительной

ELSE ...

«результат».

Возможно, из справки не очень ясно , но "результат" (значение, возвращаемое THEN / ELSE) может быть только a измерение , metri c или буквенное значение .

Учитывая, что вам нужно что-то более динамическое c, для обхода проблемы следует использовать дополнительное вычисляемое поле Например, с именем "Event_Exp". Для этого поля вы можете использовать

REGEXP_REPLACE(Event Label,'.*:','')

в качестве формулы расчета.

Ваши предыдущие выражения CASE WHEN затем станут

CASE 
 WHEN REGEXP_MATCH(Event Label,'Registrate ahora')
  THEN 'Registrate ahora'
 ELSE Event_Exp
END

Хотя это не интуитивно понятно для людей, привыкших к Сила CASE КОГДА в SQL, она должна удовлетворять ограничениям, которые есть в Google Data Studio и работали для меня в аналогичном сценарии.


Если это предложение не решит вашу проблему, оно также может быть связана с более общей ошибкой, которую имеет Google Data Studio в отношении преобразования регулярных выражений в правильные операторы для запросов к базе данных. Нам пришлось разрабатывать обходные пути для всех регулярных выражений, используемых вместе с коннектором PostgreSQL, и исправление Google все еще не выполнено.

Система отслеживания проблем предоставляет обзор всего, что ожидает исправления + возможные обходные пути для некоторых случаев.

...