oracle 列相减——(Oracle分析函数Lead(),Lag())
lag和lead函数,用于取出数据的前n行的数据和后n行的数据,当然要和over(order by)一起组合
with tmp as(
select '' id ,'aa' name from dual union all
select '' id ,'bb' name from dual
)
select a.*,
lag(name,1) over (order by id desc) lag
from tmp a
select * from
(
select t1.yin_name yin_name01,t2.yin_name yin_name02,t1.fluoride-t2.fluoride fluoride,t1.ysn-t2.ysn ysn,t1.jsn-t2.jsn jsn,
t1.jhsn-t2.jhsn jhsn,t1.chloride-t2.chloride chloride,t1.nitrite-t2.nitrite nitrite,t1.nitrate-t2.nitrate nitrate,
t1.wersn-t2.wersn wersn,t1.dersn-t2.dersn dersn,t1.bersn-t2.bersn bersn,t1.sulfate-t2.sulfate sulfate,
t1.yersn-t2.yersn yersn,t1.yin_date yin_date01 ,t2.yin_date yin_date02
from
(select * from zd_yinlz where instr(yin_name,'MO')=0 and instr(yin_name,'BLK')=0) t1
,
(
select t.*,lead(t.yin_date)over(order by yin_date) enddate from
(select * from zd_yinlz where instr(yin_name,'MO')>0 order by yin_date ) t
) t2
where t1.yin_date >= t2.yin_date and t1.yin_date < t2.enddate
)
union
select * from
(
select t1.yin_name yin_name01,t2.yin_name yin_name02,t1.fluoride-t2.fluoride fluoride,t1.ysn-t2.ysn ysn,t1.jsn-t2.jsn jsn,
t1.jhsn-t2.jhsn jhsn,t1.chloride-t2.chloride chloride,t1.nitrite-t2.nitrite nitrite,t1.nitrate-t2.nitrate nitrate,
t1.wersn-t2.wersn wersn,t1.dersn-t2.dersn dersn,t1.bersn-t2.bersn bersn,t1.sulfate-t2.sulfate sulfate,
t1.yersn-t2.yersn yersn,t1.yin_date yin_date01,t2.yin_date yin_date02
from
(select * from zd_yinlz where instr(yin_name,'MO')=0 and instr(yin_name,'BLK')=0) t1
,
(select * from
(select * from zd_yinlz where instr(yin_name,'MO')>0 order by yin_date desc) where rownum = 1) t2
where t1.yin_date >= t2.yin_date
)
oracle 列相减——(Oracle分析函数Lead(),Lag())的更多相关文章
- oracle 日期相减
oracle日期相减2012-02-10 12:18--MONTHS_BETWEEN(date2,date1) 给出date2-date1的月份 SQL> select months_betwe ...
- oracle 日期相减 转载
转自 http://hi.baidu.com/juanjuan_66/blog/item/cf48554c9331fbe6d62afc6a.html oracle日期相减2012-02-10 12 ...
- Oracle 时间相减得出毫秒、秒、分、时、天,,【转】
http://blog.csdn.net/redarmy_chen/article/details/7351410 oracle 两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 ...
- awk 两列相减
cat http.txt |awk -F ':' '{print($2-$3)}' 百度文库
- oracle列合并
在很多场合,我们会须要用到oracle列合并,oracle提供了一些方法用于把某列的多行数据合并成一行. 一.10G曾经使用WMSYS.WM_CONCAT wmsys.wm_concat将字段的值 ...
- numpy 数组相减
a与b的每一列相减
- oracle 两个时间相减
oracle 两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 为相差的小时数 oracle 两个时间相减默认的是天数*24*60 为相差的分钟数 oracle 两个时间相减默认 ...
- oracle的日期相减
oracle的日期相减 : 两个date类型的 日期相减,得到的是天数,可能是带小数点的.如下:
- oracle两时间相减得到相差的时间
1.months_between(date1,date2);date1和date2相减得到相差的月份. select months_between(to_date('2015-05-11','yyyy ...
随机推荐
- Android 工程中各种文件的介绍
一:Android.mk Android.mk 内部定义了一个或者多个源代码的模块,该文件的产生是和NDK相关的,NDK 是Android提供的一种工具,可以为编译mk文件内部的源代码提供依赖 ...
- 【前端】JS文本比较插件
一.先上效果图 二.JS代码 /** * [文本比较插件] * 传递两个参数dom1.dom2,以dom1为基准进行比较. * 0)dom1和dom2不能都为空: * 1)如果dom1不存在,则dom ...
- C++ code:for loop designs
1 用for循环编出系列图形 该图形一共10行,每一行增加一个字符,所以应循环10次,每次输出一行.其循环模式为: :i<=;++i) { 输出第i行 换行 } 我们注意到,每一行长度的变化正 ...
- bzoj1036点权模板题
/* HYSBZ1036 树上有1-n个结点,每个节点都有一个权值w 操作 CHANGE u t:把结点u的权值改为t QMAX u v:询问从点u到v的路径上的节点的最大权值 QSUM u v:询问 ...
- DDD领域模型之分配权限(十三)
权限分配和权限查找. 在DDD.Domain工程中新建:BAS_PermissionAssign类 public partial class BAS_PermissionAssgin:Aggreate ...
- SqlServer基础语句练习(一)
学了不少东西,感觉自己的sql语句还是很不好,从基础学起吧. 来一段sql脚本: create database tongji go use tongji go create table studen ...
- JS高级 - 面向对象2(prototype定义)
定义和用法 prototype 属性允许您向对象添加属性和方法 注意: Prototype 是全局属性,适用于所有的Javascript对象. 语法 object.prototype.name=val ...
- [颜色知识] 潘通色卡、CMYK、RGB、 ARGB...
潘通色卡C结尾的色号都是RGB色系的,而CMYK是印刷系的,两者不能通用的,所以,不能完全对等进行转换 Pantone Colors [色卡]PANTONE潘通色卡C面颜色http://blog.si ...
- Pycharm里面使用PIL库之后,为什么调用Image的方法不能弹出代码提示,怎样能让代码提示弹出?
之前也碰到了这个问题,安装了pillow后没有代码提示,最后查了半天,发现问题原来非常简单,解决方法也很无厘头. 之所以没有代码提示,仅仅是因为Pycharm没法判断Image.open()返回的对象 ...
- kuangbin 区间dp
A - Cake 题目大意:给你一个n个顶点(n<=100)的多边形和每两个点连边的消耗,让你求把这个多边形全部切成三角形所需要的最小消耗,如果这个多边形为凹多边形则输出无解. 思路:先求一个凸 ...