oracle按年同比环比,oracle中sum和case when的结合使用(求同比和环比)
sum和case when的结合使用
废话不多说,我们直接进行测试。
1.学生表数据
2.将学生按照性别区分
我们一般的写法就是使用group by进行分组。
select t.ssex, count(t.sname) from STUDENT t group by t.ssex;
如果我们需要求男生的人数是女生的多少倍怎么计算?
3.求男生的人数是女生的多少倍(sum和case when的结合使用)
select "男生人数", "女生人数", "男生人数" / "女生人数" as 倍数
from (select sum(case
when t.ssex = '男' then
1
else
0
end) as "男生人数",
sum(case
when t.ssex = '男' then
1
else
0
end) as "女生人数"
from STUDENT t)
通俗理解:就是将group by t.ssex的结果进行”行转列”操作
4.求同比和环比
1)同比概念
同比一般情况下是今年第n月与去年第n月比。
公式:同比增长率=(本期数-同期数)÷同期数×100%
一般理解:同比增长率=(今年第n月的数据-去年第n月数据)÷去年第n月数据×100%
2)同比测试
收入表数据
2019年5月收入同比
select "本期收入", "同期收入", to_char(("本期收入" - "同期收入") / "同期收入",'fm99990.00') "同比"
from (select sum(case
when t.year = 2019 and month = 5 then
t.money
else
0
end) as "本期收入",
sum(case
when t.year = 2018 and month = 5 then
t.money
else
0
end) as "同期收入"
from income t
where t.name = '张三')
3)环比概念
环比,表示连续2个单位周期(比如连续两月)内的量的变化比。
公式:环比增长率=(本期数-上期数)/上期数×100%
4)环比测试
2019年5月收入环比
select "本期收入", "上期收入", to_char(("本期收入" - "上期收入") / "上期收入",'fm99990.00') "环比"
from (select sum(case
when t.year = 2019 and month = 5 then
t.money
else
0
end) as "本期收入",
sum(case
when t.year = 2019 and month = 4 then
t.money
else
0
end) as "上期收入"
from income t
where t.name = '张三')
oracle按年同比环比,oracle中sum和case when的结合使用(求同比和环比)相关推荐
- ESX上ORACLE 10.2RAC(4.在REHAT4.7中安装ORACLE RAC)
四. 安装CRS软件 上传cluster软件到rac1,rac2的/home/oracle目录下 [root@rac1 ~]# cd /home/oracle [root@rac1 oracle]# ...
- oracle外部表ora29913,从外部表中选择sqlplus错误:ORA-29913:执行ODCIEXTTABLEOPEN标注时出错...
我已经建立了一个简单的Oracle外部表测试,我(与DBA和Unix管理员一起)无法工作. 以下内容基于Oracle的External Tables Concepts.我们使用的数据库是11g. 这是 ...
- 服务中启动oracle服务,Linux下如何自动启动Oracle服务
在windows下,可以在计算机服务管理里将Oracle服务设置为自动,Linux中在Oracle安装完毕以后,如果重新启动Linux ,Oracle是不会自动启动的,你可以通过手动调用dbstart ...
- oracle元数据存储在表空间,oracle db中数据和元数据的概念
本帖最后由 warehouse 于 2014-8-10 11:58 编辑 02年研究dw相关的产品和业务时第一次听说了元数据的概念,很多资料上是这样描述元数据的概念的:元数据是定义或者描述数据的数据. ...
- oracle里有limit怎么用,[ORACLE]ORACLE 实现mysql中的limit 功能
[ORACLE]ORACLE 实现mysql中的limit 功能 项目从mysql迁移到ORACLE中遇到移植问题,mysql中支持limit 而ORACLE say no . 解决方法 利用ORAC ...
- sql oracle 自增长字段,在Oracle、MySQL、MS SQL Server中创设自动增长字段
在Oracle.MySQL.MS SQL Server中创建自动增长字段 好吧,今天面试有道题,要各个数据库怎么建立自增长字段,顺便复习一下吧,最近面试很多数据库问题... 一:Oracle Orac ...
- oracle执行脚本顺序执行吗,【ORACLE】记录通过执行Oracle的执行计划查询SQL脚本中的效率问题 - 不及格的飞鱼...
记录通过执行Oracle的执行计划查询SQL脚本中的效率问题 问题现象: STARiBOSS5.8.1R2版本中,河北对帐JOB执行时,无法生成发票对帐文件. 首先,Quartz表达式培植的启动时间为 ...
- oracle修改asm参数文件,学习笔记:Oracle RAC参数文件管理 修改创建asm中的spfile文件...
天萃荷净 Oracle rac创建修改asm中的spfile文件内容 create spfile to asm --查看sid SQL> show parameter instance_name ...
- 在linux操作系统中启动oracle数据库程序,Linux系统下Oracle数据库的安装和启动关闭操作教程...
这篇文章主要介绍了Linux系统下Oracle数据库的安装和启动关闭操作教程,并针对在sqlplus下所需执行的命令进行讲解,需要的朋友可以参考下 1.准备: df -H 查看空间剩余 一般准备最 ...
- oracle中sum和count可以嵌套吗_【分享吧】Oracle查询转换
前言 "查询转换"是Oracle解析SQL语句中重要的步骤.其原理是Oracle在解析时通过对原有SQL的等价改写,以达到较高执行效率的方式. 上图展示了SQL的执行过程,当客户提 ...
最新文章
- Swift 字面量表达
- 一次mysql瘫痪解救
- 【转】python删除小记
- Subset-Sum Problem 子集和问题
- UI组件:ext、JqueryEasyUI、miniui、dhtmlx及自定义页面
- 字节流写数据加异常处理
- 使用 SAP Cloud SDK 连接 OData 服务
- No.7 nginx、nfs、集群
- java获取机器号_(转)JAVA获得机器码的实现
- 接口请求(get、post、head等)详解
- 数据库加主键sql_SQL数据库设计:选择主键
- 沙盘模拟软件_3D电子心理沙盘系统
- Zabbix邮件报警设置
- php未定义常量破解,如何使PHP未定义的常量注意到错误
- Atitit 圣爱提拉克斯工作最紧张的时候 11月,圣爱提拉克斯进入了一年中工作最紧张的时候。 过去,他每个月都要撰写不少文章、与不同的人愉快地交谈,教育他们沿着圣爱提拉克斯创造的世界上最伟大的圣
- SSH婚庆策划系统案例
- MATLAB数值计算——矩阵的逆、矩阵的特征值、矩阵的特征多项式
- 计算机网络 上 物理层和数据链路层
- 基于STM32F103C8T6的74HC595驱动8位数码管模块学习
- 台式计算机的cpu,台式电脑处理器(CPU)性能排行榜
热门文章
- java liveness_存活探针(liveness probe)
- 大湿教我写程序(2)之走向AV之路
- Android Bluetooth HCI log 详解
- 《设计心理学》学习笔记之日常的设计(第一册)
- 武汉理工计算机研究生就业去向统计,武汉理工大学《2019届毕业生就业质量报告》发布,本科生月薪7333...
- 合理设置 让你的迅雷下载速度越来越快
- 基于MATLAB的无线信道性能仿真
- 在局域网内怎样使两台计算机共享,实现局域网内两台windows计算机之间数据共享...
- cocos2d AABB碰撞检测
- 简单实用算法——人民币金额大写转换