Google Data Studio中CASE WHEN路径映射失效问题求助
解决Google Data Studio中路径追踪的CASE WHEN失效问题
你的核心问题在于:CASE语句只能为每一行返回单个PATH值,无法实现将DEFAULT的CODE同时映射到BACK、FRONT、MOBILE三个路径的需求(也就是把一行数据复制成多行)。要达成你期望的结果,我们需要用UNION ALL来拼接多个数据集,生成所有需要的组合。
正确的查询语句
-- 将DEFAULT的CODE分别映射到BACK、FRONT、MOBILE三个路径 SELECT CODE, 'BACK' AS PATH FROM your_table WHERE PATH = 'DEFAULT' UNION ALL SELECT CODE, 'FRONT' AS PATH FROM your_table WHERE PATH = 'DEFAULT' UNION ALL SELECT CODE, 'MOBILE' AS PATH FROM your_table WHERE PATH = 'DEFAULT' -- 添加BACK、FRONT、MOBILE各自的原始记录 UNION ALL SELECT CODE, PATH FROM your_table WHERE PATH IN ('BACK', 'FRONT', 'MOBILE')
这个查询的作用
- 前三个
SELECT块会把所有标记为DEFAULT的CODE,分别复制到BACK、FRONT、MOBILE三个路径分组下 - 最后一个
SELECT块会保留BACK、FRONT、MOBILE各自的原始CODE记录 - 通过
UNION ALL拼接后,就能得到你想要的结果集:比如A1(原DEFAULT)会出现在BACK、FRONT、MOBILE三个分组里,而B1(原BACK)只会出现在BACK分组里
在Google Data Studio中配置使用
- 将上述查询作为数据来源导入Data Studio
- 创建一个自定义参数(比如命名为
Selected_Path),选项设置为default、Back、Front、Mobile - 添加过滤器关联这个参数:
- 当选择
Back时,过滤PATH = 'BACK' - 当选择
Front时,过滤PATH = 'FRONT' - 当选择
Mobile时,过滤PATH = 'MOBILE' - 当选择
default时,过滤PATH = 'DEFAULT'(如果需要支持这个选项,只需在查询末尾追加UNION ALL SELECT CODE, PATH FROM your_table WHERE PATH = 'DEFAULT'即可)
- 当选择
为什么你的原始CASE语句失效?
你的CASE语句是逐行判断的逻辑:比如一条DEFAULT的行只会匹配第一个WHEN条件,返回BACK,不会同时生成FRONT和MOBILE的行。CASE只能修改单行的字段值,无法实现行的复制,所以完全无法满足你需要的“一行变多行”的映射需求。
内容的提问来源于stack exchange,提问作者Fabíola Magossi
相关产品推荐
相关产品推荐

