常见的两种报表,一种是清单明细报表,一种是数据统计报表
简单讲
清单明细报表,就是订单主信息以及详情信息的展示,汇聚在一张大的报表上,用于导出和展示使用
数据统计报表,就是根据某些纬度,比如下单时间,订单业务类型等条件进行分组,对比查询出订单数据的总量以及你想统计的成功率,失败率
如何实现清单明细报表,以及其中的一些细节
举个例子,我们想查询出订单清单明细报表,我们的主表肯定是订单表,但是单张表的字段不能设置过大,我们不能把所有和订单有关联的字段全部用在订单主表上面,我们会根据不同业务,来创建不同的订单子表,订单详情表,订单属性表,以及对应业务的订单表,比如我们要发货,就会创建订单发货表来和订单主表关联,就会有很多的表
提需求的肯定不懂这些,他们只是按照领导需要看到的数据来提需求,可不会管这个字段存的是那张表,这时候我们写清单明细报表的时候就会关联很多张订单关联的表,这时候就要注意了,如果订单和属性表是一对一的关系,那就没什么问题,如果订单关联的属性表是一对多的关系,这个时候用左连接,就会出问题,一个订单就会重复出现,我们如何解决呢
举个例子,一个订单需要去外呼,但是外呼有很多情况,有可能未接通,这个时候我们还要去再进行外呼,所以一个订单就会存多条外呼记录,清单明细报表需要展示当前订单的所有外呼记录怎么办?
这个时候就可以用string_agg() 函数,用于将多个字符串值连接成一个单一的字符串。
如何实现数据统计报表
这种一般都是通过时间,或者类型作为统计维度,比如需要统计每天订单的取消量和订单的竣工量,或者统计某种类型的订单的订单量
这种简单的用一个分组查询就可以写出来,统计数量就用sum()函数,括号里面写一个case when,如果复杂一点,分组查询再加上子查询