(一)函数介绍(lead和lag函数类似)

语法结构:

lead(value_expr [,offset][,default]) over([query_partition_clause] order by Order_by_clause)

参数说明:
value_expr 值表达式,通常是字段,也可是是表达式,value_expr本身不支持分析函数,也就是lead不支持多层调用。
offset 偏移,应该是很熟悉的数学概念了,或者是相对偏移,表格来开当前行的第offset行,如果offset是整数就表示是顺序下的前第n行,如果是负数就是往后第n行。 如果不提供这个参数,就是默认为1.
default 默认值,如果没有找到,应该返回什么值的意思,有点类似nvl(col,value)。如果没有设置,且找不到,那么就返回Null
over  理解成在一个结果集范围内,如果后面的partition by为空,那么就是当前的结果集范围内。
query_partition_clause  分区语句,对结果集合分区的语句,是可选的,如果没有就是所有的一个分区。
Order_by_clause 排序语句 必须需要 ,形如order by xxx desc/asc

(二)用法举例
例句:从表bas_trd_diary里面找到日期是20151228的前一个日期和后一个日期

select * from bas_trd_diary where trade_date = (select c.p from (select trade_date, lag(trade_date, 1, null) over (order by trade_date) as p from bas_trd_diary) c) where c.trade_date = to_date('20151228','yyyymmdd');

返回值是:
20151227

select * from bas_trd_diary where trade_date = (select c.p from (select trade_date, lead(trade_date, 1, null) over (order by trade_date) as p from bas_trd_diary) c) where c.trade_date = to_date('20151228','yyyymmdd');

返回值是:
20151229

另外介绍一个简单的SQL语句:
在oracle中用一条sql语句统计a字段下值为b的数据条数,值为c的数据条数

select sum(case when a='b' then 1 else 0 end), sum(case when a='c' then 1 else 0 end) from tab

Oracle 利用lead、lag函数查询已有记录的下一条、上一条记录相关推荐

  1. Hive窗口函数-lead/lag函数

    前面我们学习的first_value和last_value 取的是排序后的数据截止当前行的第一行数据和最后一行数据 Lag和Lead分析函数可以在一次查询中取出当前行后N行和前N行的数据,虽然可以不用 ...

  2. 产品价格变动带来的结算金额处理逻辑 lead/lag函数的使用

    背景: 计算公式:结算金额 = 产品单价(数值随时会变动) * 产品点击数 产品价格随时会更改,例如上午00:00:00点--->13:59:59 是单价 3元,下午 14:00:00-23:5 ...

  3. oracle利用分隔符,组合查询想表达的任何话

    在实施中,我们可能会遇到客户对显示标题的要求.      比如,本来标题是:广西龙潭医院关于进一步加强政务信息报送工作的通知.然后他们想显示的格式为:<文件名>(桂龙医发[2015]23号 ...

  4. 小明利用计算机软件绘制函数,2019年人大附中初二下期末模拟数学试题

    初二下数学期末模拟1姓名: 一.选择题(本题共30分,每小题3分) 在下列各题的四个备选答案中,只有一个 ....是正确的. 1.下列各点中,在直线y=2x上的点是() A.(1,1) B.(2,1) ...

  5. 【mysql】使用变量实现类似oracle中lag函数功能

    mysql使用变量实现类似oracle中的lag函数功能 说明: 有一个订单表,每次下单都会记录是否使用了券,现模拟一个需求,将订单表插入日志表达到记录用户上一次是否用券以及此订单是否用券的情况 #- ...

  6. oracle 按照lead,Oracle之Lead和Lag偏移量函数使用详解

    Oracle有两个函数:LEAD和LAG,这两个函数都是用来计算偏移量的分析函数,这两个函数的用法相同. Oracle官方文档解释是: LEADis an analytic function. It ...

  7. oracle lead 方法,Oracle SQL之lag()和lead()函数使用详解

    首先我们创建一个表user_info表: CREATE TABLE user_info(user_id NUMBER(11) primary key, user_name VARCHAR2(14), ...

  8. oracle lag group,Oracle中的lag()和lead()函数的简单用法(统计增长率)

    这两个函数,是偏移量函数,其用途是:可以查出同一字段下一个值或上一个值,并作为新列存在表中. 准备数据 select t.row_id, t.product_code, t.product_price ...

  9. Oracle 取第一个、最后一个和上一个、下一个函数详解(first_value、last_value 和 lag、lead)

    文章目录 1 概述 2 示例 2.1 first_value() + last_value() 2.2 lag() + lead() 3 扩展 3.1 保持排序,且避免返回多行 keep() 1 概述 ...

最新文章

  1. 剑指offer:面试题37. 序列化二叉树
  2. 编码调试:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaf in position 12: illegal multibyte sequen
  3. matlab if 中的等于符号,if 嵌套里的逻辑选择语句出现符号函数不能向逻辑运算转换...
  4. 已经连接到空闲例程的解决方法
  5. pv原语模拟实现_并发编程信号量的使用方法和其实现原理
  6. 大数据分析面临哪些困境
  7. linux下查看用户个数和具体名字
  8. linux下编译C++文件基本命令
  9. MCS51单片机的型号与组成
  10. 无法创建新的分区也找不到现有的分区
  11. RC微分积分电路/RC滤波电路/RC脉冲分压器/RC耦合电路
  12. ctf解题--当眼花的时候,会显示两张图(隐写)
  13. 市场营销中的色彩心理学
  14. swift 中加载nib两种方式
  15. Android开发 系统服务,android 系统服务 开发
  16. “国防七校”之一西工大遭境外网络攻击
  17. Java基础文档,图文并茂+代码实例
  18. PPTV的Zabbix监控体系
  19. Fluent 嵌套网格(overset)功能讲解与实例操作
  20. 魔众文库系统 v2.2.0 常规升级,界面和后台优化

热门文章

  1. linux 运行class文杰,Linux高手速成
  2. 【转载】Android音频(7)——项目实战——耳麦插拔
  3. 数字化转型,究竟在“转”什么?
  4. 信号与系统小总结:时域与频域
  5. THE HISTORY OF SCHIRMER SON PIANO
  6. HTML5——表格及表格属性(持续更新中....)
  7. xjzk查询录取成绩2021高考,新疆招生网:2021年新疆高考查分入口、查分系统
  8. Fritzing - 创建自己的零件(2)
  9. 时间序列分析之holtwinters和ARIMA
  10. 飞桨开源社区携手开源之夏,邀你一起走进2023开源季!