数据库如何做可视化界面

从教你大屏制作!实时数据处理+零代码,它的可视化堪比python

罗永浩在抖音第一次直播,有人把他的销售额做了一个数据可视化大屏,广为传播,很多人好奇那是怎么做出来的,其实就是实时数据载入加大屏可视化,连数据仓库都不用搭建,比真实的企业环境要简单太多。既然那么多人感兴趣,就教教各位。

下图是本文我们要做的可视化大屏展示,先来给大家看一个成品!有兴趣的可以跟着我操作一遍。

1、用什么工具做?

这可能是很多人都会关心的问题,让数据自动加载,且要输出如此一目了然的可视化,这就是我们今天要推荐的FineReport

随着大数据行业的发展,用户对数据可视化的要求越来越高。所谓“字不如表,表不如图”,图表的重要性可见一斑,在统计分析产品、用户画像等数据产品上,都需要具备优秀的数据可视化能力。

可视化的一大应用就是数据报表,而FineReport可以自由编写整合所需要的报表字段进行报表输出,支持定时刷新和监控邮件提醒,是大部分互联网公司会用到的日常报表平台。

FineReport可以直连数据库,方便快捷的定制各种复杂表样,用来做出固定格式的周报、月报等。它的格式类似于excel界面,特色功能报表制作,报表权限分配,报表管理还有填报,支持多种数据库。

来欣赏一下它的可视化吧,我也有开发经验,这简直比python强太多了:


下面就用它来进行实际操作~

2、项目背景及目的

本文基于某医院一些数据,为院长制作一个“驾驶舱”,帮助他了解医院的运营情况及其存在的问题,并针对这些问题进行诊断,达到资源配比合理化。

3、项目需求

我们从上面的目的可以知道,本文就是要为院长做一个可视化大屏,帮助他做决策,既然是帮院长做,那么我们就要知道,作为一个院长,主要关注哪些东西,他所关注的,就是我们要做的。下面我们简要列举以下几个:

  • 各科室的人员配比情况,像医生、护士、患者。
  • 各科室的就诊情况,门诊、住院(病床)
  • 各科室的收入;

4、数据表的介绍

5、软件实现

1)新建一个决策报表,添加一个背景(文末有地址)

2)连接数据库:hospital_hrp

3)标题及科室列表图的制作

① 新建数据连接,导入数据源

② 导入报表块儿:添加一个标题(资源配比决策大屏)

③ 点击上述编辑,进行如下操作

④ 保存后,进行效果预览

⑤ 再次导入一个报表块儿,用于制作科室列表图

⑥ 点击上述编辑后,完成如下操作

⑦ 调整两个报表块儿的间距后,保存并进行效果展示

4)各科室人员配比分析

  • 国家标配指标:医患比(1:5)、护患比(1:),这个数字是国家标配。
  • 需求1:某科室医、护患比月度趋势分析
  • 需求2:某科室国家标配(占比)和医院现状(占比)的对比分析


Ⅰ 需求1:某科室医、护患比月度趋势分析


① 利用SQL语句,统计不同科室有多少医生、护士


 1"--------医生人数统计----------"
 2select
 3????deptno,deptname,
 4??count(name)?医生人数
 5from?doctor
 6group?by?deptno,deptname
 7
 8"--------护士人数统计----------"
 9select
????deptno,deptname,
??count(name)?护士人数
12from?nurse
13group?by?deptno,deptname
"--------患者不同科室、不同月份的人数统计----------"
16select?
???deptno,in_month,
?????count(name)?患者人数
19from?hospital
20group?by?deptno,in_month

结果如下:

② 进行表连接,得到我们用于绘图的数据

 1select?
 2???????a.deptname,in_month,
 3???????(患者人数/医生人数)?as?医患比,
 4???????(患者人数/护士人数)?as?护患比
 5from
 6(select
 7???????deptno,deptname,
 8??count(name)?医生人数
 9from?doctor
 group?by?deptno,deptname)?a,
(select
??deptno,deptname,
????count(name)?护士人数
15from?nurse
16group?by?deptno,deptname)?b,
(select?
?????deptno,in_month,
???count(name)?患者人数
22from?hospital
23group?by?deptno,in_month)?c
24where?a.deptno?=?b.deptno?and?a.deptno?=?c.deptno

结果如下(截取部分结果如下):

③ 在帆软中,利用上述SQL语句,得到最终的绘图数据

④ 插入一个折线图

⑤ 点击上述的编辑后,进行数据源的绑定

⑥ 进行标题的设置(很关键)

由于我们未来需要进行联动效果的设置,也就是说,你选择哪一个科室,标题就要显示哪一个科室,这一步很关键。这里强调一下,下面的叙述中,就不再介绍了。

⑦ 添加两条警戒线(也就是我们常说的参考线)

我们知道国家配比关系:医患比(1:5)、护患比(1:),因此以和5为准,各做一条参考线,可以将医院的现状和这条参考线,进行清楚的对比。

注意:同理,我们可以再次添加一个护患比趋势线,操作步骤一摸一样,这里不做演示。

⑧ 保存操作后,进行效果展示

注意:每次做完每个操作后,最好保存一下。

问题来了:此时的科室表,与下方的折线图并不能进行联动,因此怎么办呢?

⑨ 科室表与折线图联动效果的设置

首先,我们编辑这个“科室表”

当出现如下界面,完成如下操作。

当出现如下界面,完成如下操作。

保存后,进行效果展示。

Ⅱ 需求2:某科室国家标配(占比)和医院现状(占比)的对比分析

① 利用SQL语句,得到“某科室国家标配占比”

1SELECT?*?FROM?`normalconfig`
2where?deptname='${科室名称}'

操作如下:

② 插入一个饼图,并选择为“圆环图-旧版本”,并选择为立体圆环图

③ 进行数据源的绑定

④ 进行标题的设置(为什么设置,上述已经进行了说明)

注意:我其实还进行了其它参数的设置,很简单,这里我们就不截图演示

⑤ 接着,我们再次进行“科室表”与圆环图,联动效果的设置

首先,我们编辑这个“科室表”

当出现如下界面,完成如下操作。

当出现如下界面,完成如下操作。

保存后,进行效果展示。

同理,我们可以做出,“某科室自己医院现状标配占比”,由于大部分步骤一样,这里就只演示不同的步骤。只有“绑定数据源”这一步操作不同。

但是此时并不行,为什么呢?因为我们左右两个圆环图的图例并不是一一对应。此时,我们将“国家标配”这个圆环图,今行字段的调整。

保存后,进行效果演示。

5)就诊情况分析

  • 需求1:某科室现有及标配病床对比分析(条形图)
  • 需求2:病床利用率
  • 需求3:某科室病床利用率月度趋势分析

Ⅰ 需求1:某科室现有及标配病床对比分析

① 利用SQL语句,统计现有及标配病床数

 1select?
 2???????a.deptname,
 3???????标配,
 4???????现有,
 5???????(标配-现有)?as?差值
 6from?
 7(select?
 8???????deptno,deptname,bednum?as?标配
 9?from?normalconfig
?)?a,
(select?
??deptno,deptname,bednum?as?现有
?from?department
?)?b
15where?a.deptno?=?b.deptno

结果如下(截取部分如下):

② 在帆软中,利用上述SQL语句,得到最终的绘图数据

③ 插入一个条形图,并进行数据的绑定

④ 进行标题的设置

④ 动态闪烁效果展示:特效功能

当某个值出现了负数,就标红。

⑤ 接着,我们再次进行“科室表”与条形图,联动效果的设置

首先,我们编辑这个“科室表”

当出现如下界面,完成如下操作。

当出现如下界面,完成如下操作。

保存后,进行效果展示。

Ⅱ 需求2:病床利用率

病床利用率 = 一个月的患者人数 / 病床数(表示还不错)

① 利用SQL语句,统计病床利用率达标的科室

 1select
 2????????deptname,
 3????????in_month,
 4????????round((患者人数/bednum),2)?as?病床利用率
 5from
 6(select
 7?????*
 8from?department)?a,
 (select?
????deptno,in_month,
????count(name)?as?患者人数
13from?hospital
14group?by?deptno,in_month)?b
15where?a.deptno?=?b.deptno
16and?(患者人数/bednum)?>=??and?(患者人数/bednum)?<=?

结果如下:

② 在帆软中,利用上述SQL语句,得到最终的绘图数据

③ 插入一个条形图,并进行数据的绑定

④ 保存后,进行效果展示

Ⅲ 需求3:某科室病床利用率月度趋势分析

① 利用SQL语句,统计现有及标配病床数

 1select
 2???????deptname,
 3???????in_month,
 4???????round((患者人数/bednum),2)?as?病床利用率
 5from
 6(select
 7????*
 8from?department)?a,
 (select?
???deptno,in_month,
???count(name)?as?患者人数
13from?hospital
14group?by?deptno,in_month)?b
15where?a.deptno?=?b.deptno

结果如下(截取部分如下):

② 在帆软中,利用上述SQL语句,得到最终的绘图数据

③ 插入一个条形图,并进行数据的绑定

④ 进行标题的设置

⑤ 添加一个参考线:

⑥ 接着,我们再次进行“科室表”与条形图,联动效果的设置

首先,我们编辑这个“科室表”

当出现如下界面,完成如下操作。

当出现如下界面,完成如下操作。

保存后,进行效果展示。

5)收入情况分析

  • 需求1:某科室住院收入月度趋势分析
  • 需求2:病床利用率

Ⅰ 需求1:某科室住院收入月度趋势分析

① 利用SQL语句,统计现有及标配病床数

 1select?
 2?????? deptname,in_month,收入
 3from?
 4(select?
 5???????deptno,in_month,
 6???????round(sum(lastincome),2)?as?收入
 7from?hospital
 8group?by?deptno,in_month)?a,
 9(select?*?from?department)?b
10where?a.deptno?=?b.deptno

结果如下(截取部分如下):

② 在帆软中,利用上述SQL语句,得到最终的绘图数据

③ 插入一个条形图,并进行数据的绑定

④ 进行标题的设置

⑤ 接着,我们再次进行“科室表”与条形图,联动效果的设置

首先,我们编辑这个“科室表”

当出现如下界面,完成如下操作。


当出现如下界面,完成如下操作。


保存后,进行效果展示。

关注我,并转发该文章,私信回复“可视化”,即可获得FineReport企业级可视化工具的下载地址,免费的!

原文链接:,转发请注明来源!