最近收到一个需求,报表要展示全日期数据,但是表中数据是不全的。

实现目标:

查询语句:

SELECT       a,b,LAST_VALUE(b IGNORE NULLS) OVER(ORDER BY a) c,LAST_VALUE(b IGNORE NULLS) OVER(ORDER BY a Rows Between Unbounded Preceding And Current Row) c,NVL(b, LAG(b IGNORE NULLS) OVER(ORDER BY b)) d
FROM   WH_TEST
Order By a

解释:last_value 区间默认从第一行取到当前行

练习数据

源数据:

201606    21.119182    1.131613    0.395940    0.010000
201612    12.606719    0.649216    0.000000    0.395940
201706    14.191882    0.550000    0.000000    0.400000
201712    10.758545    0.320000    0.550000    0.400000
201806    8.980767      0.320040    0.406476    0.010000
201812    4.804155      0.190000    3.060000    0.380000
201906    9.470459      0.190000    3.060000    0.380000
201912    9.884857      0.420000    0.000000    1.660000
202006    12.355335    2.110000    0.260000    1.410000

目标数据格式:

201606    21.119182    1.131613    0.395940    0.010000
201607    21.119182    1.131613    0.395940    0.010000
201608    21.119182    1.131613    0.395940    0.010000
201609    21.119182    1.131613    0.395940    0.010000
201610    21.119182    1.131613    0.395940    0.010000
201611    21.119182    1.131613    0.395940    0.010000
201612    12.606719    0.649216    0.000000    0.395940
201701    12.606719    0.649216    0.000000    0.395940
201702    12.606719    0.649216    0.000000    0.395940
201703    12.606719    0.649216    0.000000    0.395940
201704    12.606719    0.649216    0.000000    0.395940
201705    12.606719    0.649216    0.000000    0.395940
201706    14.191882    0.550000    0.000000    0.400000
201707    14.191882    0.550000    0.000000    0.400000
201708    14.191882    0.550000    0.000000    0.400000
201709    14.191882    0.550000    0.000000    0.400000
201710    14.191882    0.550000    0.000000    0.400000
201711    14.191882    0.550000    0.000000    0.400000
201712    10.758545    0.320000    0.550000    0.400000
201801    10.758545    0.320000    0.550000    0.400000
201802    10.758545    0.320000    0.550000    0.400000
201803    10.758545    0.320000    0.550000    0.400000
201804    10.758545    0.320000    0.550000    0.400000
201805    10.758545    0.320000    0.550000    0.400000
201806    8.980767      0.320040    0.406476    0.010000
201807    8.980767      0.320040    0.406476    0.010000
201808    8.980767      0.320040    0.406476    0.010000
201809    8.980767      0.320040    0.406476    0.010000
201810    8.980767      0.320040    0.406476    0.010000
201811    8.980767      0.320040    0.406476    0.010000
201812    4.804155      0.190000    3.060000    0.380000
201901    4.804155      0.190000    3.060000    0.380000
201902    4.804155      0.190000    3.060000    0.380000
201903    4.804155      0.190000    3.060000    0.380000
201904    4.804155      0.190000    3.060000    0.380000
201905    4.804155      0.190000    3.060000    0.380000
201906    9.470459      0.190000    3.060000    0.380000
201907    9.470459      0.190000    3.060000    0.380000
201908    9.470459      0.190000    3.060000    0.380000
201909    9.470459      0.190000    3.060000    0.380000
201910    9.470459      0.190000    3.060000    0.380000
201911    9.470459      0.190000    3.060000    0.380000
201912    9.884857      0.420000    0.000000    1.660000
202001    9.884857      0.420000    0.000000    1.660000
202002    9.884857      0.420000    0.000000    1.660000
202003    9.884857      0.420000    0.000000    1.660000
202004    9.884857      0.420000    0.000000    1.660000
202005    9.884857      0.420000    0.000000    1.660000
202006    12.355335    2.110000    0.260000    1.410000
202007    12.355335    2.110000    0.260000    1.410000
202008    12.355335    2.110000    0.260000    1.410000
202009    12.355335    2.110000    0.260000    1.410000
202010    12.355335    2.110000    0.260000    1.410000
202011    12.355335    2.110000    0.260000    1.410000
202012    12.355335    2.110000    0.260000    1.410000

提示:可利用循环生成日期,后使用last_value或lag实现。

oracle取上行数据进行填充相关推荐

  1. oracle取下个月数据,大神看过来,Oracle数据库用sql取下月第一天怎么解?

    最近小编在学习oracle数据库,今天在学习sql语句时突然想用刚学习的oracle数据库函数来取出下个月的第一天是具体多少号.小编首先想到的是用oracle数据库自带的函数NEXT_DAY(date ...

  2. ORACLE 取唯一数据

    set define off; BEGIN   -- 输出SQL文件名,便于从输出日志定位到SQL文件.   dbms_output.put_line('01_CREATE_V_ITP_USER_RO ...

  3. oracle按时间段过滤查询,oracle 取某个时间段的数据(每周几的上午几点到几点)...

    oracle 取某个时间段的数据,具体代码如下所示: select count(*),t.分组字段 from ( select t.* ,to_char(t.时间,'HH24') stime,to_c ...

  4. oracle取每日固定时间,Oracle查询每天固定时间段的数据

    select * from GPS_LOG t where to_char(t.gps_time,'hh24:mm:ss')>='15:30:00'and to_char(t.gps_time, ...

  5. oracle取字段部分内容,oracle截取字段中某部分数据

    Oracle提前某数据的 前几位或后几位 用substr函数. 如test表中数据如下: 现要提取dept字段中的前两位,可用如下语句: select id,name,substr(dept,1,2) ...

  6. oracle tns 代理配置_OGG实现Oracle到MySQL数据平滑迁移

    技术分享 | 使用OGG实现Oracle到MySQL数据平滑迁移 - 爱可生开源社区​opensource.actionsky.com 一.OGG概述 OGG全称为Oracle GoldenGate, ...

  7. oracle 函数to_char(数据,'FM999,999,999,999,990.00') 格式化数据

    转载自: https://blog.csdn.net/fupengyao/article/details/52778565 遇到了oracle 取数格式问题,这里记一下 我们通常在做数据算数后,会想要 ...

  8. oracle不同库之间传送文件,EXCEL与ORACLE间的数据互传法数据库 -电脑资料

    众所周知,MicrosoftExcel能很直观而方便地进行数据输入,统计,生成图表,但它的数据管理能力有限,对大量的数据查询能力不足,如果利用它数据计算方面的优点和大型 数据库 ORACLE的数据查询 ...

  9. 用C++实现网络编程---抓取网络数据包的实现方法

    From: http://blog.csdn.net/zjl_1026_2001/article/details/2191311 做过网管或协议分析的人一般都熟悉sniffer这个工具,它可以捕捉流经 ...

最新文章

  1. 腾讯云与每日优鲜便利购战略签约 引领无人零售2.0时代发展
  2. nodejs没有net模块_Node.js实战16:用http模块创建web服务器
  3. 浅析网站内链优化如何营造良好的内链生态环境?
  4. CentOS7系统 yum 安装报错
  5. 漫画:什么是狭义相对论?
  6. ADO.NET Entity Framework之ObjectQuery
  7. U25%(1,16) and U25%(1,168)on《C4.5:programs for machine learning》
  8. IOS仿微信朋友圈的日期处理
  9. 深入理解golang 的栈
  10. 【BZOJ】1901: Zju2112 Dynamic Rankings(区间第k小+树状数组套主席树)
  11. 小米新生态总监董红光:致力打造智能服务开放平台
  12. “请求未在nginx中配置的域名时,给浏览器返回508错误码”配置示例
  13. tensorflow入门书籍推荐_架构书籍推荐(入门读)
  14. 转:为什么你不是真正的快乐
  15. RGB VGA显示时序
  16. 程序员如何修炼自己的九阳神功
  17. ipv6环境搭建来测试
  18. 彻底解决2440/2410触摸屏跳点以及抖动问题
  19. ip地址占用检测,ping ip地址
  20. 吕著三国史话(观后感一)

热门文章

  1. [数据结构][Python]python实现散列表
  2. 金三银四求职季,程序员面试必备——编程语言篇
  3. python中format是啥意思_python里format什么意思
  4. EBS 报表开发:XML Publisher Excel模板
  5. win10升级win11(cpu/tpm不符合)亲测有效,保留数据
  6. Kinect with Unity3D游戏开发的一点思路总结(体感赛车游戏)
  7. 技能梳理36@淘宝/天猫数据爬取
  8. 《大明王朝》以牺牲换来大义
  9. surface pro4 java开发_写给那些想买Surface Pro4的童鞋们
  10. 巧用“sfc /scannow”命令扫描修复Win8系统