數據需求:

柱圖分別求所有電廠最近7日電量的總和,和同期電量總和

折線一為最近7日電量

X軸為時間,從昨天開始的7日。

Y軸為發電量。

發電量表:DR_INDEX_SUM_DAY字段說明:

FACTORY_ID為電廠編碼

INDEX_ID為數據維度

INDEX_DAY為日期

INDEX_VALUE為發電量值

INDEX_ID字段中fdl_day、fdl_day_wind為發電類型

fdl_month_plan_gsfdmb為月計划值

數據如下圖:

實現策略:求所有電廠近7日累計值和去年同期值

1)求出當日所有電廠的總和值;

2)在1的基礎上使用Oracle sum(*)over(order by * range *)累計分析函數加開窗對近7天的值進行聚集計算;

3)使用round函數對指定2位小數進行四合五入計算;

4)使用row_number() over(partition by * order by *) 生成不同年份,不同月份的序列,通過lag函數去取出同期的數據;

5)使用coalesce函數對null值補零。

SQL腳本:

/*求所有電廠近7日累計值和去年同期值*/

with tb as(

select to_char(t.index_day, 'YYYY') year,

to_char(t.index_day, 'MM') month,

t.index_day,

t.index_value

from   DR_INDEX_SUM_DAY2 t

where  t.factory_id != 'gwny'

and    t.index_id in ('fdl_day', 'fdl_day_wind')

),

tb2 as(

select t.year, t.month, t.index_day, sum(t.index_value) t_day_sum

from   tb t

group  by t.year, t.month, t.index_day

),

tb3 as(

select t.year,

t.month,

t.index_day,

round(sum(t.t_day_sum) over(order by t.index_day range between 6 preceding and current row) / 1000,2) last_7_day_sum, --近7日累計值

row_number() over(partition by t.year order by t.index_day) seq --分組序號

from   tb2 t

group  by t.year, t.month, t.t_day_sum, t.index_day

)

select t.year,

t.month,

t.index_day,

t.last_7_day_sum, --近7日累計值

coalesce(lag(t.last_7_day_sum, 1) over(partition by t.seq order by t.index_day),0) Last_year_last_7_day --近7日去年同期值,如果為空自動補0

from   tb3 t

order by t.index_day desc

查詢結果:

oracle 查询去年同期,Oracle求近7日累計值和去年同期值相关推荐

  1. Oracle求近7日累计值和去年同期值

    数据需求: 柱图分别求所有电厂最近7日电量的总和,和同期电量总和 折线一为最近7日电量 X轴为时间,从昨天开始的7日. Y轴为发电量. 发电量表:DR_INDEX_SUM_DAY 字段说明: FACT ...

  2. oracle查询表唯一索引,oracle查询索引(oracle查看表索引)

    oracle查询索引(oracle查看表索引) 2020-07-24 11:01:26 共10个回答 选中表右键View然后查看index 通过PL/SQL可以直接查看某表是否建索引,通过SQL查询s ...

  3. oracle查有哪些数据库,oracle查询数据库(oracle查询所有数据库)

    oracle查询数据库(oracle查询所有数据库) 2020-07-24 12:01:17 共10个回答 PLsql查询工具便可查询 你指所有的表吗?如果你想查数据库中所有的表的话,可以查询sele ...

  4. oracle 查询天,Oracle查询_ 单表查询

    前面我们详解了关于Oracle的增删改,今天让我们接着来学习Oracle的查询吧, Oracle中查询可是重头戏噢!!!跟着煌sir的步伐,走位,走位~~~ 小知识锦囊 在此前,先讲解一个小知识点 O ...

  5. oracle查询快慢,Oracle查询连接数和sql快慢脚本

    Oracle查询连接数和sql快慢脚本 一.查询执行最慢的sql select * from (select sa.SQL_TEXT, sa.SQL_FULLTEXT, sa.EXECUTIONS & ...

  6. oracle 查询reference,ORACLE高级查询之MODEL PART3

    接PART2:http://blog.chinaunix.net/uid-7655508-id-5835051.html 1.2.4 Null度量和单元格缺失 在Model查询中,对NULL度量有两种 ...

  7. oracle 查询最高分,oracle高级查询

    幕课oracle学习笔记 --!!!scott用户 --一.分组查询 --1.常用的分组函数:AVG(平均数),SUM,MIN,MAX,COUNT,WM_CONCAT(行转列) select avg( ...

  8. oracle查询元数据,Oracle Spatial-元数据及SDO_GEOMETRY

    一.空间表的元数据 将表的SDO_GEOMETRY列的所有对象作为一个空间层.Spatial需要对所有空间对象进行验证.创建索引和查询.此时需要为图层指定适当的元数据,该数据包含如下信息:维度.维度边 ...

  9. oracle 查询 ppt,oracle子查询.ppt

    <oracle子查询.ppt>由会员分享,可在线阅读,更多相关<oracle子查询.ppt(26页珍藏版)>请在人人文库网上搜索. 1.子查询,目标,通过本章学习,您将可以: ...

  10. oracle查询file_name,Oracle DG环境下db_file_name_convert的实际意义

    关于DG环境下备库数据文件重命名的问题: **前言:** 主要想表明DG环境下备库数据文件重命名的问题,以及db_file_name_convert与log_file_name_convert的作用. ...

最新文章

  1. 论如何骗过计算机视觉AI网络,UCLA专家为你支几招
  2. 【强化学习】强化学习专栏上线,60多篇文章等你follow
  3. ITK:复制过滤器filter
  4. SDNU 1062.Fibonacci(矩阵快速幂)
  5. 【牛客 - 370H】Rinne Loves Dynamic Graph(分层图最短路)
  6. preview窗口 unity_Unity3D在Preview中打印日志的方法
  7. fiddler 抓取 安卓模拟器 https包
  8. python中的选择结构语句是语句_选择结构-if语句和if...else语句
  9. mysql数据库导入视图表失败_一个mysqldump导出失败的案例分析
  10. 从有到优:百度前端接入技术的升级之路
  11. 老外的一份渗透测试报告
  12. 《Multiobjective Evolutionary Algorithms:A Comparative Case Study and the Strength Pareto Approach》
  13. PowerVR性能建议-黄金法则
  14. 教你如何用Python抓取QQ音乐歌单及分析
  15. npm install 报错:found XXX vulnerabilities (XXX low, X moderate),run `npm audit fix` to fix them, or `
  16. 如何用大数据做行为预测的?
  17. 原创 | 王欣:多维深耕打造数字化银行
  18. Git 学习之团队协作(Gitee实操)
  19. 3D可视化(互联网)
  20. 二进制流转PDF,未能加载的pdf文档

热门文章

  1. 跟李沐学AI:A Gentle Introduction to Graph Neural Networks(图神经网络GNN)
  2. flutter大小单位:dp
  3. ubuntu18.04在状态栏显示网速
  4. iReport报表Detail设置自适应高度
  5. 杰理之AUDIO_DAC【篇】
  6. css文本缩进两个字符,css如何设置首行缩进2个字符
  7. scrapy项目部署
  8. 初学者最容易学的六种编程语言
  9. 中国天气的各个城市的id,整理成json文件记录
  10. 我去面试没带简历,你让我走人?