效果图:

SQL:

    select to_char(ADD_MONTHS(TO_DATE(d.time,'YYYY-MM') ,-12),'YYYY-MM')pretime,d.base as predata,d.time ,d.num asdata,nvl2(d.yoy,concat(d.yoy, '%'),'—') as yoy from (select c.year||'-'||c.month as time,c.base,c.num,case c.base when 0 then '' else to_char(round(c.difference/c.base* 100, 2))end as yoyfrom(select d.year, d.month, d.num,lag(d.num,1) over(partition by d.month order byd.year) as base,d.num-lag(d.num,1) over(partition by d.month order byd.year) as difference from(SELECT substr(a.dt,0,4) year,substr(a.dt,6) month,a.num from (WITH m AS (SELECT to_char(ADD_MONTHS(ADD_MONTHS(#{beginDate} ,-12),LEVEL-1),'YYYY-MM') dtFROM DUALCONNECT BYLEVEL &lt; = MONTHS_BETWEEN(#{endDate},ADD_MONTHS(#{beginDate} ,-12))+1)SELECT m.dt,nvl(TEMP.NUM,0) as NUMFROM m LEFT JOIN(select YM, sum(PRINTING_NUM) num from(select to_char(PRINTING_DATETIME,'YYYY-MM') YM, PRINTING_NUM from INTER_PRINT t<where><if test="department!='' and department!=null ">and DEPARTMENT = #{department}</if></where>)tabGroup by tab.YM order by tab.YM)TEMP ON m.dt=TEMP.YM order by m.dt)a)d)c)dwhere d.time &gt;= to_char(#{beginDate},'YYYY-MM') order by d.time

【笔记】一条SQL,求同比相关推荐

  1. ORACLE——一条SQL计算同比、环比

    按照月份进行计算: SELECT D.YEARMONTH, D.VALUE, TO_CHAR(NVL(ROUND(DECODE(D.monthOnMonth,0,NULL,(D.VALUE - D.m ...

  2. 一图讲解一条sql语句的一生——《收获,不止Oracle》的读书笔记01

    其实也是<收获,不止Oracle>的读书笔记之一啦 微信读书可以看,数据库我觉得相通性还是比较大的,不管你用的哪种,都可以学学 难度的话,我才看到2.2 ,觉得本菜鸟还是可以看懂的. 说是 ...

  3. sql求31到第40条数据(id不连续)

    sql求31到第40条数据(id不连续) --利用开窗函数,并将其当作结果集 查询其31到第40条 select* from (select *,ROW_NUMBER() over(order by ...

  4. SQL反模式笔记17——用一条sql解决复杂问题

    目标:检查sql查询次数 反模式:试图用一条sql解决复杂问题 结果是:性能很低,而且往往得到了一个笛卡尔积. 解决方案:分而治之 用多个sql得到数据,再进行整合.或者union多个sql的结果. ...

  5. 讲mysql执行流程书籍_MySQL 基础架构 1. 一条SQL查询语句的执行过程(个人学习笔记)...

    MySQL的逻辑架构图: MySQL 大体分为 "server 层" 和 "存储引擎层" 两部分: Server 层 包括 连接器.查询缓存.分析器.优化器.执 ...

  6. oracle笔记一(sql语句方面)

    oracle笔记一(sql语句方面) 一.sql语句 --================================================ 1.增加主键    alter table ...

  7. 判断resultset是否遍历到最后一条记录_干货:一条SQL语句执行得很慢的原因

    说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回车之后,究竟发生了什么"一样,看看你能说出多少了. 之前腾讯 ...

  8. 一条SQL语句执行得很慢的原因有哪些?

    一.开始装逼:分类讨论 一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论. 1.大多数情况是正常的,只是偶尔会出现 ...

  9. 数据库优化:52 条 SQL 语句性能优化策略,果断收藏!

    1 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2 应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值 ...

  10. 腾讯面试题:一条SQL语句执行得很慢的原因有哪些?

    最近的招聘季,腾讯有一道面试题:一条SQL语句执行得很慢的原因有哪些? 其实,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回 ...

最新文章

  1. linux驱动开发要知道的那些知识(三)------container_of,定时器 及系统调用
  2. c语言文件 加载内存吗,把文件中的数据加载到内存进行查找C语言实现.docx
  3. matlab 多次求解偏微分方程 ode45
  4. linux系统UDP的socket通信编程
  5. 通俗易懂,快速幂基本思想
  6. 复制过去格式不一样_不一样的立春节气:一个新的轮回开启,万物更新,疫情终将过去...
  7. PAT1002. 写出这个数
  8. Ubuntu16.04镜像下载
  9. 张量分解--非负矩阵分解 (NMF)
  10. 在html中加入中文字体,css设置中文字体
  11. PayPal 更换汇率结算方式 降低手续费,PayPal汇率结算 改为 银行汇率结算
  12. 2015年动画电影观影指南
  13. android tv香橙派镜像,香橙派-如何通过dd制作系统镜像
  14. 监控树莓派Raspberry Pi的CPU/GPU的温度
  15. 【es6】用map对数组对象中插入新的属性
  16. 程序员撩妹,你得看我教你的小技巧
  17. 使用Eagle2进行单倍型分析
  18. oracle 多表导出,oracle多表导出dmp
  19. 计算机健康小知识,日常生活养生小知识
  20. sim2real环境配置教程

热门文章

  1. 我的2020|有风有雨亦有晴
  2. 微软windows拼音繁体、简体中文切换
  3. 何为五笔输入的最高境界?
  4. 怎样购买笔记本电脑-世界十大品牌
  5. 中级软件设计师备考攻略
  6. 开发一个 Linux 调试器(四):Elves 和 dwarves
  7. 瑞士轮 pascal
  8. 物联网产业到2023年连接数将突破20亿
  9. 如何找出1-100之间的质数
  10. 请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某