-
玳玳我 小试身手Lv3
发表于2022-5-29 22:24
楼主
本帖最后由 玳玳我 于 2022-5-30 20:27 编辑
在做数据分析时,经常会用到取数组对象做过滤的不同分析场景,下面将举例几个场景列举一下数组对象使用转化场景。
场景一:钻取传参时,例如需要传浮动表元对象GRID1.A5$,用做过滤条件的in 或者 not in使用。而通常GRID1.A5$这种表元数组对象取出来的格式是["1","2","3","4"]这种格式,没有办法直接写在过滤条件里拼接成正确sql,此时在设置钻取传参时可以用 A5$.select(true,@).join(",")表达式,先将GRID1.A2$这种表元的数组值先转成用逗号分割的普通字符串1,2,3,4,然后再使用主题表.字段 not in (@sp+"").split(",")的方式拼接进过滤条件。
需求场景:
求出排名前五的商品大类的销售额明细,剩余商品归为其它类,并且点击左边商品大类或者其它,右边表格显示对应商品大类的小类销售额明细
表样设计:
热区式钻取传参设置:
钻取子表过滤条件设置:
最后效果:
场景二:维下拉多选过滤场景时,如果维表此时绑定了主题表对应的维度字段,我们可以使用dim函数,用dim(主题表字段)=@cs这种表达式,快速做单选和多选的过滤,那如果主题表维度字段没有绑定维表时,这时候想取维下拉参数值做多选过滤,改如何转化数组对象来做过滤?
转化方法:维下拉多选转换成数组:<#=(@wb+"").split("\|")#>
数组转换成字符串:<#=(@wb+"").split("\|").join(",")#>
需求场景1:层级维做多选过滤写法
方法1:QC_XL.XZQHDM in (@wb+"").split("\|")
方法2:<#=(@wb+"").split("\|").select(true,"QC_XL.XZQHDM= '"+@+"'").join(" or ")#>
表样设计:
最后效果:
需求场景2:通用维做多选过滤写法
可以参考帖子:https://bbs.esensoft.com/thread-140752-1-1.html
在做数据分析时,经常会用到取数组对象做过滤的不同分析场景,下面将举例几个场景列举一下数组对象使用转化场景。
场景一:钻取传参时,例如需要传浮动表元对象GRID1.A5$,用做过滤条件的in 或者 not in使用。而通常GRID1.A5$这种表元数组对象取出来的格式是["1","2","3","4"]这种格式,没有办法直接写在过滤条件里拼接成正确sql,此时在设置钻取传参时可以用 A5$.select(true,@).join(",")表达式,先将GRID1.A2$这种表元的数组值先转成用逗号分割的普通字符串1,2,3,4,然后再使用主题表.字段 not in (@sp+"").split(",")的方式拼接进过滤条件。
需求场景:
求出排名前五的商品大类的销售额明细,剩余商品归为其它类,并且点击左边商品大类或者其它,右边表格显示对应商品大类的小类销售额明细
表样设计:
热区式钻取传参设置:
钻取子表过滤条件设置:
最后效果:
场景二:维下拉多选过滤场景时,如果维表此时绑定了主题表对应的维度字段,我们可以使用dim函数,用dim(主题表字段)=@cs这种表达式,快速做单选和多选的过滤,那如果主题表维度字段没有绑定维表时,这时候想取维下拉参数值做多选过滤,改如何转化数组对象来做过滤?
转化方法:维下拉多选转换成数组:<#=(@wb+"").split("\|")#>
数组转换成字符串:<#=(@wb+"").split("\|").join(",")#>
需求场景1:层级维做多选过滤写法
方法1:QC_XL.XZQHDM in (@wb+"").split("\|")
方法2:<#=(@wb+"").split("\|").select(true,"QC_XL.XZQHDM= '"+@+"'").join(" or ")#>
表样设计:
最后效果:
需求场景2:通用维做多选过滤写法
可以参考帖子:https://bbs.esensoft.com/thread-140752-1-1.html