Регулярное выражение с вычисляемым полем в Google Data Studio

У меня есть следующее вычисляемое поле, но оно не работает:

sum(CASE WHEN REGEXP_MATCH(url, 'foo') THEN 1 ELSE 0 END)

Моя цель - просуммировать все URL-адреса, содержащие слово «foo». Имеет ли это смысл? В чем моя ошибка?


person Simon Breton    schedule 12.01.2017    source источник


Ответы (1)


Вам необходимо использовать .*foo.*, поскольку REGEXP_MATCH требует полного соответствия строки :

REGEXP_MATCH пытается сопоставить всю строку, содержащуюся в field_expression.

Использовать

sum(CASE WHEN REGEXP_MATCH(url, '.*foo.*') THEN 1 ELSE 0 END)
                                 ^^   ^^
person Wiktor Stribiżew    schedule 12.01.2017
comment
и если я ищу несколько терминов, должен ли '.*foo.*|.*bar.*' работать? - person Simon Breton; 12.01.2017
comment
Когда вам нужно использовать чередования, рекомендуется, чтобы ни один из них не совпадал в одном месте (в противном случае у вас возникнут проблемы с производительностью). Итак, используйте '.*(foo|bar).*'. Если у вас есть foot, foo, bar, board, используйте '.*(foot?|b(ard|oard)).*' - person Wiktor Stribiżew; 12.01.2017