ORACLE——一条SQL计算同比、环比
按照月份进行计算:
SELECT
D.YEARMONTH,
D.VALUE,
TO_CHAR(NVL(ROUND(DECODE(D.monthOnMonth,0,NULL,(D.VALUE - D.monthOnMonth )/D.monthOnMonth * 100),2), 0), 'fm9999999990.00') || '%' 环比增长率,
TO_CHAR(NVL(ROUND(DECODE(D.yearOnYear,0,NULL,(D.VALUE - D.yearOnYear)/D.yearOnYear * 100),2), 0),'fm9999999990.00') || '%' 同比增长率
FROM (SELECTC.YEARMONTH,C.VALUE,LAG (C.VALUE, 1, 0) OVER (ORDER BY C.YEARMONTH) AS monthOnMonth,LAG (C.VALUE, 12, 0) OVER (ORDER BY C.YEARMONTH) AS yearOnYearFROM (SELECT A.YEARMONTH, NVL(B.VALUE, 0) VALUE FROM (SELECT TO_CHAR( ADD_MONTHS( TO_DATE( '202101', 'yyyyMM' ), ROWNUM - 1), 'yyyyMM') AS YEARMONTH FROM DUAL CONNECT BY ROWNUM <= months_between( to_date('202212', 'yyyyMM'), to_date( '202101', 'yyyyMM')) + 1) ALEFT JOIN(SELECT TO_CHAR(CYJSSJ, 'yyyyMM') YEARMONTH, NVL(COUNT(*), 0) VALUE FROM BA_JBXX WHERE TO_CHAR(CYJSSJ, 'yyyyMM') >= 202101 AND TO_CHAR(CYJSSJ, 'yyyyMM') <= 202212 GROUP BY TO_CHAR(CYJSSJ, 'yyyyMM') ORDER BY TO_CHAR(CYJSSJ, 'yyyyMM')) B ON A.YEARMONTH = B.YEARMONTH ORDER BY A.YEARMONTH) C
) D WHERE D.YEARMONTH >= 202001 AND D.YEARMONTH <= 202212
ORACLE——一条SQL计算同比、环比相关推荐
- 【Mysql实战】使用存储过程和计算同比环比
背景 同环比,是基本的数据分析方法.在各类调研表中屡见不鲜,如果人工向前追溯统计数据,可想而知工作量是非常大的. 标题复制10行,并且每行大于10个字符[源码解析]SpringBoot接口参数[Mys ...
- Oracle如何根据一个日期计算同比环比的日期
iamlaosong文 在写统计查询的SQL语句时,经常会碰到根据一个查询日期推演其它日期的问题,如同比.环比等. 1.字符串转换成日期:to_date('2016-6-16', 'yyyy-mm-d ...
- SQL计算日环比、周同比
计算日环比.周同比 范例表格如下: 这是面试问到的一个问题,回来学习之后了解可以用这个函数: 计算日活的日环比,周同比: 代码如下: select date,dau,(dau-dau_1)/dau_1 ...
- 使用 SQL 实现同比环比分析
场景描述 在做数据分析时,经常会需要展示同比和环比的数据,可以通过 SQL 来完成同比和环比的计算,再配合数据可视化工具进行展示,每个月都会自动展示当月数据与上月的对比(环比),以及当月数据与去年同期 ...
- java时间计算同比环比周的问题
问题描述: 在业务中会有传不同日期格式, 1.有天(2020-02-29),周(2020-03第三周),月(2020-02二月份), 2.同时需要计算对应的去年同比时间和环比(就是上一个时间段,周的2 ...
- oracle一条sql运行时间很长,oracle查看执行最慢与查询次数最多的sql语句及其执行速度很慢的问题分析...
oracle查看执行最慢与查询次数最多的sql语句 前言 在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻 ...
- oracle一条sql的执行过程,请问执行一条sql的整个过程是怎样的,谢谢!
select count(*) into c from yaoyao_pbj where object_id=7559; select count(*) into c from yaoyao_pbj ...
- oracle多条sql语句常量,如何在Oracle中一次执行多条sql语句
有时我们需要一次性执行多条sql语句,而用来更新的sql是根据实际情况用代码拼出来的 解决方案是把sql拼成下面这种形式: begin update TB_VG set seq = 1, vessel ...
- mysql:一条sql语句统计环比、同比
有一个业务需求 统计各个景区的入园人数.销售额以及入园人数和销售额的同比 以月度为例子同比为例:环比类似 思路分析:表a首先统计出当月的入园人数.销售额,表b统计出同期的入园人数.销售额(在a的基础上 ...
最新文章
- TensorFlow反向传播算法实现
- httpsrequest java_java 发送http和https请求的实例
- 取input 输入_tensorRT动态输入(python)
- 《C语言解惑》—— 第一篇 C语言编程中的对与错
- 简历上的“熟练掌握 RPC”,到底是个什么水平?
- 在有原来的数据的情况下,恢复数据库的数据
- Hive数据据类型 DDL DML
- 2021年甘肃省高考成绩一分一段表查询,2021年甘肃高考一分一段表公布查询时间 什么时候出...
- json解析与序列化
- JAVA使用JCo连接SAP介绍-1
- Pytho爬虫-4567电影网电影信息爬取
- 2019最新activiti6.0工作流搭建平台
- 现代战争——僵尸网络的历史 上篇
- 铁匠smith_铁匠的大气散射
- [享学Eureka] 一、源生Eureka介绍 --- 基于注册中心的服务发现
- PC服务器硬盘故障处理
- 校聘云:人力行业的数据安全守夜人
- 师范类专业计算机和数学哪个好,师范类数学与应用数学专业考研考哪个方向好?是本专......
- 番茄助手 VS2015
- 无监督学习的12个最重要的算法介绍及其用例总结