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 ...
随机推荐
- Vue.js——理解与创建使用
Vue.js 概念:是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API,作者是尤雨溪是中国人. 优点: 1)易用 已经会了HTML,CSS,JavaScript?即刻阅读指南开始构 ...
- 初识numpy
from numpy import * 导入numpy包 random可以生成随机数组 通过mat函数,将数组转换成矩阵,可以对矩阵进行求逆计算等.其中.I操作实现了矩阵求逆计算操作. 执行矩阵乘 ...
- Uiautomator之入门
优点:1.可以对所有操作进行自动化,操作简单: 2.不需要对被测程序进行重签名,且,可以测试所有设备上的程序,比如~某APP,比如~拨号,比如~发信息等等 3.对于控件定位,要比robotium ...
- CBAM: 卷积块注意模块
CBAM: Convolutional Block Attention Module 论文地址:https://arxiv.org/abs/1807.06521 简介:我们提出了卷积块注意模块 ( ...
- python----面向对象(2)
反射 class ClassA: name = 'xiaoming' def __init__(self): self.y = 'y' #先执行 __setattr__ 在执行__getattribu ...
- 微信h5支付源码DEMO参考
类库代码 wechatH5Pay.php <?php //use Flight; /** * 微信支付服务器端下单 * 微信APP支付文档地址: https://pay.weixin.qq.co ...
- POJ 3126 Prime Path (素数+BFS)
题意:给两个四位素数a和b,求从a变换到b的最少次数,每次变换只能变换一个数字并且变换的过程必须也是素数. 思路:先打表求出四位长度的所有素数,然后利用BFS求解.从a状态入队,然后从个位往千位的顺序 ...
- asp.net core配置访问地址
配置Kestrel Urls有四种方式,我这里只介绍一种.其它方式可自行百度. 在Program.cs里使用UseUrls()扩展方法进行设置.UseUrls()方法的参数是个字符串数组,可以同时设置 ...
- PHP Excel导入日期单元格处理
PHPExcel导入Excel文件,对Excel中日期单元格处理 /** * 判断字符串是否是日期格式 * @param $date * @param $format * @return bool * ...
- 【Java】 剑指offer(14) 二进制中1的个数
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如把 ...