关于目标完成率的时间序列折线图筛选/下钻时分母目标值变化的问题

如图1、2分别为业务每日发生的明细表(图1)、目标表(图2);

希望能在同一个组件中仅通过筛选可以实现:

①总目标累计完成率:所有指标实际值之和/所有目标值之和,效果如图3;

②在该组件中筛选省份时,折线图的值变为筛选出的指标实际值之和/该省份目标值,效果如图4;

③在该组件中筛选城市时,折线图的值变为筛选出的指标值之和/该城市目标值,效果如图5;

image.png

image.png

image.png

image.png

image.png

FineBI 顾问好凶 发布于 2021-11-16 17:02
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
全栈数据Lv6初级互助
发布于2021-11-17 16:35(编辑于 2021-11-17 16:43)

实现思路:

1、对明细表用窗口函数从省份、城市、县区维度计算累计值,对目标表分别按省份、城市聚合关联;然后将聚合后的表和原表按照省份、城市、区县进行关联。

2、结合第一步实现的结果,使用存储过程,根据参数是省份还是城市,动态返回查询结果。

伪代码:

create procedure p_dynamic_select(

@para varchar(50) 

)

as

begin

if (select count(1) from 省份动态查询 where 省份=@para)>1

begin

select 日期,指标占比 from 省份动态查询 where 省份=@para group by  省份 

end

else if(select count(1) from 省份动态查询 where 城市=@para)>1

begin

select 日期,指标占比 from 省份动态查询 where 城市=@para group by 省份,城市

end

end

或者更直接的方法:把整个累计计算逻辑写成两大段SQL在存储过程中根据参数判断返回。

供参考。

  • 0关注人数
  • 271浏览人数
  • 最后回答于:2021-11-17 16:43
    请选择关闭问题的原因
    确定 取消
    返回顶部