学习心得:品质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

心得体会

理清思路,学无止境


相关文章
|
数据采集 消息中间件 监控
最终整体回顾总结(流程-ppt)|学习笔记
快速学习最终整体回顾总结(流程-ppt)
77 0
最终整体回顾总结(流程-ppt)|学习笔记
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(4)(十二)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
94 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(4)(十二)
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化高级—多图布局(2)(六)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
96 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化高级—多图布局(2)(六)
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化高级—多图布局(1)(五)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
148 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化高级—多图布局(1)(五)
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(3)(十一)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
111 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(3)(十一)
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(2)(十)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
150 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(2)(十)
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(1)(九)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
103 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化进阶—常用视图(1)(九)
|
SQL BI 索引
【SQL开发实战技巧】系列(二十八):数仓报表场景☞人员分布问题以及不同组(分区)同时聚集如何实现
【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。
【SQL开发实战技巧】系列(二十八):数仓报表场景☞人员分布问题以及不同组(分区)同时聚集如何实现
|
9月前
|
数据挖掘
时不我待(第二十一课) 对数据的分析的能力 将数据展示出来(一)
时不我待(第二十一课) 对数据的分析的能力 将数据展示出来(一)
46 0