0

我将 datastudio 与 BigQuery 连接起来。我尝试在 BigQuery 中使用用户函数并在 datastudio 中使用过去的个人查询,但在 datastudioCREATE TEMP FUNCTION中不支持用户函数 ( )。然后我尝试使用带有类别的新非计算字段,但出现了问题:

CASE WHEN REGEXP_MATCH(campaign, '*-Moskva-*','*-moskva-*') THEN 'Москва' ELSE 'other' END

错误:无效的公式

4

2 回答 2

1

可以使用以下任一CASE语句来实现:

1) WHENcampaign包含-Moskva--moskva-THENМосква

CASE
  WHEN REGEXP_MATCH(campaign, ".*(-[Mm]oskva-).*") THEN "Москва"
  ELSE "other"
END

2) WHENcampaign包含MoskvamoskvaTHENМосква

CASE
  WHEN REGEXP_MATCH(campaign, ".*([Mm]oskva).*") THEN "Москва"
  ELSE "other"
END

创建了一个Google Data Studio 报告和 GIF 来详细说明:

于 2020-05-30T11:25:34.100 回答
-1

您尝试复制您的功能,但它不适用于 Big Query。这是一个工作示例

SELECT CASE WHEN REGEXP_CONTAINS('-Moskva-', r'.*-Moskva-.*|.*-moskva-.*') THEN 'Москва' ELSE 'other' END

您可以在 Data Studio 中使用 CONTAINS_TEXT 进行尝试。对于你的情况,那将是

CASE WHEN CONTAINS_TEXT(campaign, '.*-Moskva-.*|.*-moskva-.*') THEN 'Москва' ELSE 'other' END

那应该工作

于 2020-05-20T16:28:26.587 回答