轻分析分享-需求解决方案原创
金蝶云社区-赖慢慢
赖慢慢
47人赞赏了该文章 494次浏览 未经作者许可,禁止转载编辑于2023年11月21日 13:59:24

  随着手上这个轻分析项目要收尾,我根据项目遇到的问题针对一些需求尝试找到了一些解决方案,可能不是最优解,但是确实可以解决,当然可能我接下来的分享都是用自定义sql作为数据准备解决很多场景的需求,因为业务实体的局限性,很多处理操作需要在sql处理好。


1.需求模拟:需求计算xxx的同环比数据
image.png

这个时候有人会说了,这不是很简单嘛,用内置的同环比不就可以解决了嘛
image.png

这个确实是没错的,但是有局限性,如果你在筛选器里面过滤了日期,如果想看本年或者本月那你的同环比数据就出不来了,往期的数据被你过滤了,所以这个时候同环比就出不来了,这种时候可以用自定义sql作三个数据准备,将你的涉及到的表字段数据通过sql查出来,这三个都是一样的sql,底层数据语句都是一样的,一个作为原始数据,一个作为同比数据,一个作为环比数据,然后分别在同比环比的表各做一个辅助字段算出对应的同环比日期出来,然后再根据分组的维度拼接将三个表关联起来,但是这里有很重要的一点,拼接的维度其实就是分组的维度保证这个数据有且只有一条,否则同环比数据会错误
image.png

image.png

image.png

这里我举两个截图例子代表我关联的维度,具体维度根据实际需求和数据来确定,保持一点要求,保证有且只有一条数据就不会错。
image.png

image.png

2.需求模拟:计算什么合格率达成率拖期等问题,还要计算各种数量
image.png

这种需求最怕的就是分批的问题,不是说业务实体做不了,这个分具体场景和需求,有些能做但是你计算字段的内容会很复杂,
而且经常会出现因为分批的问题重复计算数量,或者聚合不能和明细行一起运算,这里我举个例子,下面是我用业务实体计算的截图,不过最终因为业务实体无法解决最终改为sql
image.png

所以我建议把业务实体转换sql,将计算字段放在sql处理,防止重复计算的话数量都是分开计算取,我这里偷懒了写的复杂点了一直在子查询,实际上用存储过程或者临时表会更好,将你要算的数据一层层汇总取出来
image.pngimage.png

图标赞 47
47人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!