现在市面上很多产品都提供了自助报表功能(或可视化报表),下图是天翼云翼飞低代码平台提供的自助报表功能的一个截图。
图中,只需要将左侧的字段分别拖到维度、指标和条件过滤区域内,页面就可以根据用户的配置自动生成一个统计图表。
那么,其中的原理是怎样的呢?
其实,当用户拖动字段修改图表的配置时,页面会将图表的配置内容传递给后端接口,后端接收到请求时,主要执行以下操作:
1,根据图表配置,生成数据查询SQL
2,连接数据库,执行数据查询SQL
3,查询结果转换为符合前端展示的数据结构
这里的关键就是第一个步骤,生成查询SQL,那么图表配置中的维度和指标在SQL中分别属于哪一部分呢?
以上图中的柱状图统计表为例,从中不难看出这个统计表的目的是:统计2020年,每个学生每个科目的成绩平均分。
这里的维度类似于“分组”的概念,需要放在SQL中的group by关键词后面;
这里的指标是主要汇总的值,需要放在SQL中的select关键词后面。另外,这里的指标还设置了汇总方式 平均值,所以需要用SQL函数average包起来;
这里的条件过滤,很明显就是要放在SQL中的where关键词后面。
那么根据图中的图表配置,就可以生成类似如下的查询SQL
select a.姓名, a.科目, average(a.分数)
from (表名/子查询) a
where a.年份=2020
group by a.姓名, a.科目
当然,图中的例子并不只是生成了上面这样简单的查询SQL,因为图中的例子还涉及到小数格式化和子表关联查询等。这里只是着重说明了维度和指标在生成SQL中承担的作用。
除了柱状图,自助报表功能还支持其他类型的统计图表,每种统计图表的维度和指标数量不尽相同,生成查询SQL的规则也不一样,有兴趣的同学不妨去体验研究下。