【问题标题】:Datastudio non calculated fields createDatastudio 非计算字段创建
【发布时间】:2017-07-05 15:54:21
【问题描述】:

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

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

错误:公式无效

【问题讨论】:

  • 在 Data Studio 中将查询指定为数据源时,是否取消选中“使用旧版 SQL”框?
  • 是的,计算函数正在工作(总和(收入),成本/收入)
  • 如果您使用REGEXP_CONTAINS 而不是REGEXP_MATCH,查询是否有效? REGEXP_MATCH 在使用标准 SQL 时不是一个有效的函数。
  • DataStudio 仅使用以下函数:REGEXP_EXTRACT、REGEXP_MATCH、REGEXP_REPLACE、HYPERLINK

标签: regex google-bigquery google-data-studio re2


【解决方案1】:

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

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

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

2) WHEN campaign 包含 Moskvamoskva THEN Москва

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

创建了Google Data Studio Report 和 GIF 来详细说明:

【讨论】:

    【解决方案2】:

    您尝试复制您的函数,但它在 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
    

    应该可以的

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 1970-01-01
      • 2014-11-12
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 2021-08-29
      • 2011-08-29
      相关资源
      最近更新 更多