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 ...
随机推荐
- shell编程之helloworld
/bin/sh与/bin/bash的区别sh:如果前面有语句报错,则报错语句后面的命令不执行bash:如果前面有语句报错,后面的命令也会执行sh跟bash的区别,实际上就是bash有没有开启posix ...
- oracle 回退表空间清理
1.查看已有表空间,找到回退表空间 SELECT * FROM DBA_TABLESPACES WHERE CONTENTS='UNDO' 2.创建新的回退表空间 create undo tables ...
- oracle 监听 添加ip
同时修改tnsnames.ora.listener.ora将这两个文件中HOST后面的主机都修改为127.0.0.1然后重启OracleServiceXE.OracleXETNSListener服务 ...
- 基于axios创建的实例使用axios.all,报错:this.$http is not a function,但请求成功
报以下错误: 原因: axios实例没有all这个方法,all是axios的静态方法 解决方法: 以下方法不是最好的,还没找到更好的解决办法,目前先这样解决.
- vue渲染时对象里面的对象的属性提示undefined,但渲染成功
场景: 从后台请求的数据结构如下: 我的list是对象,而comment又是list里的对象,渲染成功了,却报如下错: 解决办法: 添加一个:v-if
- poj1179 环形+区间dp
因为要用到模,所以左起点设置为0比较好 #include<iostream> #include<cstdio> #include<cstring> #define ...
- 性能测试十四:Xshell链接linux虚拟机
一.先装一个linux虚拟机 VBox+centos1.先下载Linux镜像文件的ovf或者OVA文件2.打开vbox,点击菜单栏“管理”-“导入虚拟电脑3.选择解压路径中的ovf或者OVA文件,点击 ...
- Tesseract_ocr 字符识别基础及训练字库、合并字库
字符训练网上一搜一大堆,但作为一个初学者而言,字符合并网上却写的很笼统 首先,需要 生成的字符集.tif文件,位置文件 .box ,只要有这两个文件在,就可以合并字典(这个说的很有道理的样子) 好了, ...
- 步步为营-70-asp.net简单练习(文件的上传和下载)
大文件的上传一般通过FTP协议,而一般小的文件可以通过http协议来完成 1 通过asp.net 完成图片的上传 1.1 创建html页面 注意:1 method="post" ; ...
- 【C++ Primer | 15】构造函数与拷贝控制
合成拷贝控制与继承 #include <iostream> using namespace std; class Base { public: Base() { cout << ...