AWS QuickSight中基于值匹配的过滤配置问题
AWS QuickSight中基于值匹配的过滤配置问题
嗨,我来帮你搞定这个过滤需求~你之前用参数的思路其实绕了弯路,而且逻辑上没踩对点,所以才没生效。其实有两种更直接的方法可以实现你想要的效果,把value1==value2的id(也就是id=b)从柱状图里去掉:
方法一:创建计算字段后过滤(适合所有数据集类型)
这是最通用的方式,不管你的数据集是SPICE还是直接连接数据源都能用:
- 打开你的数据集页面,点击顶部的计算字段按钮,新建一个计算字段,比如命名为
值匹配检查 - 在计算编辑器里输入逻辑:
点击保存这个字段ifelse(value1 = value2, '匹配', '不匹配') - 回到你的柱状图分析界面,添加一个过滤器:选择刚才创建的
值匹配检查字段,过滤条件设为等于,然后选中不匹配,应用过滤器后,id=b就会被自动隐藏啦
方法二:数据源层面直接过滤(适合SQL型数据源)
如果你的数据集是通过自定义SQL或者直接连接数据库生成的,那可以直接在数据源阶段就把不符合条件的记录排除掉,省得后续再处理:
直接修改你的SQL查询语句,加上过滤条件:
SELECT * FROM my_table WHERE value1 != value2
如果需要处理NULL值的情况(比如value1或value2为空时也不想显示),可以用你之前想到的<=>运算符:
SELECT * FROM my_table WHERE NOT (value1 <=> value2)
修改后重新导入数据集,之后做柱状图就只会显示符合条件的id了
为啥你之前的参数方法没用?
你之前用参数关联value2再过滤value1的思路,问题出在聚合逻辑上:你选了Sum(value1)作为过滤的聚合方式,但你要的是每行记录里value1和value2的比较,不是聚合后的值对比。而且多值参数的匹配逻辑和你想要的逐行判断不匹配,所以自然没达到预期效果啦
备注:内容来源于stack exchange,提问作者wyt
相关产品推荐
相关产品推荐

