学习心得:品质MR图遇到帆软tab块分析

简介: 笔记

前言:


最近使用帆软的报表系统搭建品质的IQC趋势分析demo给相关领导汇报争取一炮打响,哪知道连续打了两个哑炮。一个就是MR里面的移动极差的计算,一个是使用帆软tab块然后增加报表块,再在报表块里面增加图表进行趋势分析,如果你有兴趣的话,请继续往下看。本次心得分析主要是整理网上没有系统总结的开窗函数的使用和移动求和、移动极差、移动平均的运用。然后就是帆软tab块BUG的处理。


解题思路

移动极差的计算

Q:如图所示,移动极差=ABS(计算列的第一个值-第二个值),但第一个计算结果是空值

1.png

A:假如将这些数据存储值数据库的表t1中,数据列为Ni,在SQL里面怎么写呢,第一种会想到使用自连接的形式,分两断重新关联使用,利用第一段行号=第二段行号-1关联得错位的数据,可实现该需求,但在实际应用发现,该种方法效率比较低而且占用服务器较多的资源。


对于一个IT人员来说不是只实现了客户需求就会满足,因此,放弃了这套思路,去网上查找开窗函数的相关用法,因此开展了自己的新大陆,发现类似直接使用over函数和 rows between n preceding and n following就可以得到移动累计数值,求出移动累计后,求移动平均就很简单,除以对应天数或者使用AVG函数即可,效果如图所示:


SELECT  [salesdate]
      ,[Region]
  ,sale
      ,sum(sale)over(order by salesdate,region rows BETWEEN 2 preceding AND CURRENT ROW)--
  FROM [Rollingtest] t1
  where salesdate <'20210910'

2.png



但是所有的开窗函数好像不支持“移动相减”的算法。因此此时我又换了一个思路,是不是有个函数可以直接获取上下行相邻的数据呢,功夫不负有心人找到了lead和lag函数,解决了这个问题


最终的效果图如图所示:


参考代码如下所示:


Select t1.*,
case when ROW_NUMBER() OVER ( ORDER BY SUBSTRING(CONVERT(varchar(100),更新时间,23),1,10) )=1 then 0 else ABS(Mn-LAG(Mn, 1, 0) OVER (ORDER BY SUBSTRING(CONVERT(varchar(100),更新时间,23),1,10))) end jc
          from  t1--通过ROW_NUMBER() OVER ()开窗函数排序实现了第一行为空的处理,使用lag函数实现了错位取值的功能

3.png



帆软bug展示

Q:tab块下图表显示不全

4.png

A:通过与帆软客服一下午的调试,刚开始怀疑是插件的问题,后来怀疑是浏览器缩放的问题,后面与其他环境对比发现是tab块下,报表块自适应的问题,具体操作如图所示。

5.jpg6.png

心得体会

理清思路,学无止境


相关文章
|
关系型数据库 数据挖掘 数据库管理
三张图读懂Greenplum在企业的正确使用姿势
第一张 老外通常如何使用数据仓库 数据仓库的使用人员通常是数据分析师,一个成熟的分析模型的建立,可能需要多次的数据模型分析试错。 通常试错不会允许直接在任务库中执行,因为很容易干扰任务库的任务处理,你一定不想因为试错导致报表不能按时输出吧,相信老板会让你好看的。 因此老外通常会将数据
9576 0
|
编解码 Shell Linux
使用GFS数据驱动WRF模式场--2层嵌套 全过程学习记录
使用GFS数据驱动WRF模式场--2层嵌套 全过程学习记录
使用GFS数据驱动WRF模式场--2层嵌套 全过程学习记录
|
存储 分布式计算 流计算
离线数据Join我懂,但是实时数据怎么做Join的? by彭文华
离线数据Join我懂,但是实时数据怎么做Join的? by彭文华
|
SQL BI 索引
【SQL开发实战技巧】系列(二十八):数仓报表场景☞人员分布问题以及不同组(分区)同时聚集如何实现
【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。
【SQL开发实战技巧】系列(二十八):数仓报表场景☞人员分布问题以及不同组(分区)同时聚集如何实现
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化高级—多图布局(1)(五)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
189 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化高级—多图布局(1)(五)
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化高级—多图布局(2)(六)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
134 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化高级—多图布局(2)(六)
|
6月前
|
SQL 存储 算法
实战教学--怎样提高报表呈现的性能?
实战教学--怎样提高报表呈现的性能?
|
机器学习/深度学习 算法 数据挖掘
《BI那点儿事—数据的艺术》目录索引
原文:《BI那点儿事—数据的艺术》目录索引 原创·《BI那点儿事—数据的艺术》教程免费发布 各位园友,大家好,我是Bobby,在学习BI和开发的项目的过程中有一些感悟和想法,整理和编写了一些学习资料,本来只是内部学习使用,但为了方便更多的BI开发者,推动BI企业级应用开发,决定整理成一部教程,并在网络上免费发布该教程,希望为BI时代贡献绵薄之力! 本教程是由Bobby参考官方文档,综合市面相关书籍,经过充分的吸收消化,结合开发实践的而创作的一部原创作品,为了本教程及早与广大读者同仁见面、分享,特采用定稿一部分就发布一部分的连载方式发布。
1892 0
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(3)(十一)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
152 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(3)(十一)