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