首页 > 解决方案 > 无法在 Google Data Studio CASE 中连接

问题描述

我正在尝试创建一个新字段,该字段显示来自存储在Targeting字段中的类似 json 的字符串的年龄范围。但是,不能保证这些数据存在于该行中。

样本数据(age_min/age_max 不一定要同时存在,也可以单独存在)

{"age_min":25,"age_max":45,"other_nonrelated":1234}

这就是我提取age_min/age_max的方法

REGEXP_EXTRACT(Targeting, '.*\"age_min\":(\\d*).*')

在尝试使用 CASE 功能后,似乎我无法使用REGEXP_EXTRACT. 所以我为 age_min 和 age_max 创建了新的字段Targeting Age MinTargeting Age Max.

现在我只需要确保两者Targeting Age MinTargeting Age Max没有返回 null 但我也不能只使用IS NOT NULL所以我REGEXP_MATCH(Targeting Age Max, '\\d*')改用。但是,当我无法THEN使用CONCAT().

当前进度(给出错误假设,因为它不支持CONCAT()after THEN

CASE
    WHEN REGEXP_MATCH(Targeting Age Max, '\\d*') AND REGEXP_MATCH(Targeting Age Min, '\\d*') THEN CONCAT(Targeting Age Min, ' – ', Targeting Age Max)
END

期望的结果

25 – 45

拥有一个不需要创建多个不同字段(如Targeting Age Min和)的更优雅的解决方案真的很酷Targeting Age Max

标签: google-data-studio

解决方案


编辑CONCAT以以下格式显示年龄范围的公式age_min - age_max

CONCAT(REGEXP_EXTRACT(Targeting, '"age_min":(\\d+)'), " - ", REGEXP_EXTRACT(Targeting, '"age_max":(\\d+)'))

使用以下公式更新了报告的图像:

2]

原帖(计算):age_max - age_min

这个单个计算字段使用REGEXP_EXTRACTandCAST函数来捕获 and 中的值age_maxage_min确保它们都是数值,然后进行减法:

CAST(REGEXP_EXTRACT(Targeting, '"age_max":(\\d+)') AS NUMBER ) - CAST(REGEXP_EXTRACT(Targeting, '"age_min":(\\d+)') AS NUMBER )

谷歌数据洞察报告和 GIF 来详细说明:

4=5]


推荐阅读