博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
确定当前记录和下一条记录之间相差的天数
阅读量:5730 次
发布时间:2019-06-18

本文共 780 字,大约阅读时间需要 2 分钟。

创建测试用表:

CREATE OR REPLACE VIEW v ASSELECT '1' AS id, DATE'2015-1-1' AS hiredate FROM DUALUNION ALLSELECT '2' AS id, DATE'2015-5-1' AS hiredate FROM DUALUNION ALLSELECT '3' AS id, DATE'2015-3-1' AS hiredate FROM DUAL;SELECT * FROM v;

首先需要把下一条记录的雇佣日期移到当前行,这里需要用到 lead() over() 分析函数:

SELECT id, hiredate, LEAD(hiredate) OVER(ORDER BY hiredate) next_hd FROM v;

当数据提取到同一行后,在计算就比较简单了:

SELECT id, hiredate, next_hd - hiredate AS diff  FROM (SELECT id, hiredate, LEAD(hiredate) OVER(ORDER BY hiredate) next_hd          FROM v);

和lead对应的就是lag函数,如果能记住两个函数的区别当然比较好,如果记不住,可直接实验。

SELECT id,       hiredate,       LEAD(hiredate) OVER(ORDER BY hiredate) lead_hd,       hiredate,       LAG(hiredate) OVER(ORDER BY hiredate) lag_hd  FROM v;

转载于:https://www.cnblogs.com/minisculestep/p/4898873.html

你可能感兴趣的文章
OSChina 周四乱弹 ——心有鱼,而力不足
查看>>
OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗
查看>>
[译]是时候使用Javascript严格模式了
查看>>
Spring--通过注解来配置bean
查看>>
Spring Bean之间的关系
查看>>
pandas 十分钟入门
查看>>
nginx rewrite
查看>>
前端安全系列(一):如何防止XSS攻击?
查看>>
用Mysql5.6出现时间问题Incorrect datetime value: '' for column 'createtime'
查看>>
Pureftpd的权限控制
查看>>
微信授权登录
查看>>
IK分词器安装
查看>>
查看Linux并发连接数
查看>>
你是谁不重要,关键是你跟谁!
查看>>
CSS中规则@media的用法
查看>>
pychecker:分析你的python代码
查看>>
关于linux上安装网络打印机
查看>>
css 默认不显示 之后显示
查看>>
Django博客项目之登录和注册系统
查看>>
我的友情链接
查看>>