ORACLE确定当前记录和下一条记录之间的差值
2018-02-01 16:15
519 查看
今天要给客户做一张报表,主要是反应当天的话务数量与前一天之间的对比情况,也就是说,假设表结构是这样的:
日 期
呼入号码数
2015/12/26
10248
2015/12/27
9640
2015/12/28
9362
2015/12/29
9911
那么做出来的表应该是这样的:
其中 增幅应该是 当前的记录跟上一天记录去做对比,这种情况在IREPORT中应该是可以实现的,但是ireport资料较少。
故从sql入手,目前想到的有两种方法:
1、拼两遍sql
select XX from xxx a,
select XX from xxx b
where a.日期=b.日期-1天
2、使用oracle lead、lag函数
select 日期,
号码个数,
LAG(号码个数) over(order by 日期) 上一天数量 from xxx where 1=1
select 日期,
号码个数,
lead(号码个数)
over(order by 日期)
下一天数量 from xxx where 1=1
然后再用相应的公式算出增幅百分比即可
日 期
呼入号码数
2015/12/26
10248
2015/12/27
9640
2015/12/28
9362
2015/12/29
9911
那么做出来的表应该是这样的:
日 期 | 呼入号码数 | 增幅 |
2015/12/26 | 10248 | -29.29% |
2015/12/27 | 9640 | -5.93% |
2015/12/28 | 9362 | -2.88% |
2015/12/29 | 9911 | 5.86% |
故从sql入手,目前想到的有两种方法:
1、拼两遍sql
select XX from xxx a,
select XX from xxx b
where a.日期=b.日期-1天
2、使用oracle lead、lag函数
select 日期,
号码个数,
LAG(号码个数) over(order by 日期) 上一天数量 from xxx where 1=1
select 日期,
号码个数,
lead(号码个数)
over(order by 日期)
下一天数量 from xxx where 1=1
然后再用相应的公式算出增幅百分比即可
相关文章推荐
- ORACLE确定当前记录和下一条记录之间的差值
- 确定当前记录和下一条记录之间相差的天数
- Sql确定当前记录和下一条记录之间相差的天数
- oracle 查询当前记录的上一条记录或下一条记录
- Oracle查询当前记录的上一条记录或下一条记录
- oracle中根据当前记录查询前一条和后一条记录
- sql 查询当前记录的上一条和上一条 oracle
- oracle 存储过程 stored procedure 查询一条记录或多条记录
- oracle中查询最近的一条记录(FIRST_VALUE() OVER(PARTITION BY ORDER BY ))
- 论oracle随机查询一条记录
- Oracle 数据库下 查询当前用户下所有表的记录总数
- Oracle分析函数系列之first_value/last_value:在记录集中查找第一条记录和最后一条记录
- oracle 利用 lead 、lag 查询已有记录的下一条、上一条记录
- Oracle查询重复数据并删除,只保留一条记录
- jdbc插入一条记录后,马上获取到当前记录的id,以方便对插入的当前记录进行更多的操作
- oracle删除重复记录保存一条
- MySQL查询当前数据上一条和下一条的记录
- oracle 插入记录,字段自动获取当前系统时间(YYYY-MM-DD HH24:MI:SS)
- ORACLE学习之旅——分组取每组数据中最近的一条记录
- oracle中插入一条记录后,重新登录查找不到数据