google-data-studio - 无法在 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 Min
和Targeting Age Max
.
现在我只需要确保两者Targeting Age Min
都Targeting 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
。
解决方案
编辑:CONCAT
以以下格式显示年龄范围的公式age_min - age_max
:
CONCAT(REGEXP_EXTRACT(Targeting, '"age_min":(\\d+)'), " - ", REGEXP_EXTRACT(Targeting, '"age_max":(\\d+)'))
使用以下公式更新了报告的图像:
原帖(计算):age_max - age_min
这个单个计算字段使用REGEXP_EXTRACT
andCAST
函数来捕获 and 中的值age_max
,age_min
确保它们都是数值,然后进行减法:
CAST(REGEXP_EXTRACT(Targeting, '"age_max":(\\d+)') AS NUMBER ) - CAST(REGEXP_EXTRACT(Targeting, '"age_min":(\\d+)') AS NUMBER )
谷歌数据洞察报告和 GIF 来详细说明:
推荐阅读
- sql - SQL 选择时,根据另一列中的值将一列的值更改为空白
- vba - 更改具有过去开始日期的 Outlook 约会系列
- memory - 如何在无限滚动中从 Puppeteer 中释放内存?
- r - 根据R中的条件查找日期差异
- android - 用于下方元素的 Android AppBar 布局 ScrollFlag
- javascript - 如何使用 crypto.generateValues() 生成 0 到 26 的随机数
- python - python中方程组的自动创建和求解(以符号形式)
- python - 如何在 python tkinter GUI 中动态更改 Treeview 上的 mysql 数据
- .net - 如何修复无法添加服务。使用 WCF 测试客户端时可能无法访问服务元数据
- android - Flutter Heap Space 问题 - 堆空间耗尽,尝试分配 8589934608 字节