我将datastudio与BigQuery连接起来。 我尝试在BigQuery中使用用户函数,在datastudio中使用过去的个人查询,但在datastudio中不支持用户函数(CREATE TEMP FUNCTION)。 然后我尝试使用新的非计算字段和类别,但有些不对劲:
CASE WHEN REGEXP_MATCH(campaign, '*-Moskva-*','*-moskva-*') THEN 'Москва' ELSE 'other' END
错误:公式无效
答案 0 :(得分:1)
可以使用以下任何CASE
语句来实现:
1)campaign
包含-Moskva-
或-moskva-
时Москва
CASE
WHEN REGEXP_MATCH(campaign, ".*(-[Mm]oskva-).*") THEN "Москва"
ELSE "other"
END
2)当campaign
包含Moskva
或moskva
然后Москва
CASE
WHEN REGEXP_MATCH(campaign, ".*([Mm]oskva).*") THEN "Москва"
ELSE "other"
END
创建了Google Data Studio Report和GIF进行详细说明:
答案 1 :(得分:-1)
您尝试复制您的函数,但不适用于Big Query。这是一个可行的例子
SELECT CASE WHEN REGEXP_CONTAINS('-Moskva-', r'.*-Moskva-.*|.*-moskva-.*') THEN 'Москва' ELSE 'other' END
您可以使用CONTAINS_TEXT在Data Studio中尝试。对于你的情况是
CASE WHEN CONTAINS_TEXT(campaign, '.*-Moskva-.*|.*-moskva-.*') THEN 'Москва' ELSE 'other' END
应该可以