1.1 应用场景
在使用柱形图实现可视化的过程中,可能会遇到以下几种业务需求:
1)柱子太多无法在一个柱形图中全部展示出来。
2)柱子太多一次性全部展示出来影响图表美观。
3)需要做成动态展示增强图表的表现效果。
1.2 预期效果
让柱形图的柱子在一定时间间隔内切换,动态展示出所有的柱子,效果如下图所示:
1.3 实现思路
实现这个效果的核心思路是找一个不断变化的量,写在 SQL 的 where 条件语句中,作为查询条件,这样在特效的监控刷新效果中,根据我们设置的刷新时间,数据集会不断执行我们设置的动态 SQL 。
不断变化的因素,想来想去也就只有服务器时间这一个了,所以我们取服务器时间的“秒”作为不断变化的因素,加入到 where 条件语句中,变成我们需要的动态 SQL 。
2.1 报表设计
1)将柱形图拖到决策报表中,如下图所示:
2)新建数据集 ds1,示例中的动态 SQL 语句如下:
select * from (
select Row_Number() over (order by qdh) as id,* from
qqctu_dm.dm_sec_qd_elec
) a
where
id%2 = cast(substr(cast(current_timestamp as varchar),19,1) as int)%2
注1:将所要展示的记录排序并编号,再将服务器时间的“秒”作为一个查询条件写入 where 条件中,不同数据库的 SQL 可能略有不同,但是道理都是一样的,此处作者使用的查询引擎是 presto,读者应根据实际情况灵活处理。
注2:因为 SQL 中涉及取服务器时间,所以上传内置数据集模板无法加载出动态效果,此处只讲 SQL 上传,读者根据自己使用的数据库类型自行转换即可。
3)绑定柱形图数据,如下图所示:
4)在交互属性中设置动态刷新时间,此处与 SQL 对应好,否则刷新可能会出问题,如下图所示:
2.2 效果预览
保存报表,点击PC端预览,效果如下图所示:
来自用户:大尾巴企鹅