oracle中lead函数,oracle lead()函数 | 学步园
ead()是一个分析函数,适用于oracle 8i以后的版本,
使用这个函数,你可以一次性从表中查询多条记录,
而不需要进行表的自连接。
返回值:返回与当前行偏离offset行的列值。
语法:
lead ( expression [, offset [, default] ] )
over ( [ query_partition_clause ] order_by_clause )
expression :可以包含除了分析函数意外的任何oracle内置函数。
offset :可选项,表里偏移当前行的值,默认值为1。
default :可选项,如果offset值超出了当前表范围,就返回此值,默认值为null.
下面是一个实例:
1.
with orders as(
select to_date('25-09-2007','dd-mm-yyyy') order_date,1000 product_id,20 qty from dual union all
select to_date('26-09-2007','dd-mm-yyyy'),2000,15 from dual union all
select to_date('27-09-2007','dd-mm-yyyy'),1000,8 from dual union all
select to_date('28-09-2007','dd-mm-yyyy'),2000,12 from dual union all
select to_date('29-09-2007','dd-mm-yyyy'),2000,2 from dual union all
select to_date('30-09-2007','dd-mm-yyyy'),1000,4 from dual)
select product_id,order_date,
lead(order_date,1) over (order by order_date) next_order_date
from orders;
PRODUCT_ID ORDER_DATE NEXT_ORDER_DATE
---------- ----------- ---------------
1000 2007-9-25 2007-9-26
2000 2007-9-26 2007-9-27
1000 2007-9-27 2007-9-28
2000 2007-9-28 2007-9-29
2000 2007-9-29 2007-9-30
1000 2007-9-30
--
因为offset值为1,所以查询出了下一个order_date
如果我们将offset设为2,那么会查询出往下第二个order_date,
如果offset为3呢,将会查询出往下第三个order_date,
......
2.使用上面的数据。
select product_id,order_date,
lead(sum(qty),1,0) over (order by order_date) sum_next_qty
from orders
group by product_id,order_date;
PRODUCT_ID ORDER_DATE SUM_NEXT_QTY
---------- ----------- ------------
1000 2007-9-25 8
1000 2007-9-27 4
1000 2007-9-30 15
2000 2007-9-26 12
2000 2007-9-28 2
2000 2007-9-29 0
我们先按product_id分组,再按order_date分组
oracle中lead函数,oracle lead()函数 | 学步园相关推荐
- oracle中类似indexof用法_instr函数
oracle中类似indexof用法_instr函数 [sql] 在oracle中没有indexof()函数 但是提供了一个 instr() 方法 具体用法: select instr('保定市南市区 ...
- 【转】Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
Oracle 中的 TO_DATE 和 TO_CHAR 函数 oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例 格式 说明 显示值 备注 Year(年 ...
- Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理 Oracle 中的 TO_DATE 和 TO_CHAR 函数 oracle 中 TO_DATE 函数的时间格式,以 2008-0 ...
- mysql中sql语句中常见的group_concat()函数意思以及用法,oracle中与其一样的功能函数是wmsys.wm_concat()
1.group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一 ...
- oracle中获取当前时间的函数
在 Oracle 中,你可以使用 SYSDATE 函数来获取当前时间. 例如: SELECT SYSDATE FROM DUAL; 这会在输出中显示当前时间. 你也可以使用 CURRENT_TIMES ...
- oracle 中WITH AS,oracle的with as用法
转自:https://www.cnblogs.com/linjiqin/archive/2013/06/24/3152667.html –针对多个别名 with tmp as (select * fr ...
- oracle中聚合比较函数,Oracle聚合函数/分析函数
oracle函数分两类:单行函数.多行函数.多行函数又分为聚合函数.组合函数,参数为数组,数据大小为记录数,这种数组不是普通高级语言的数组,是一种虚拟数组,当记录数大时,会将数据写入硬盘,内存中放的只 ...
- Oracle中的within,Oracle函数 --聚合函数中的语法within group
Oracle的聚合函数一般与group by 联合使用,但一般通过group by 聚合 但某些聚合函数会后跟 WITHIN GROUP (ORDER BY expr [ DESC | ASC ] [ ...
- oracle中正则表达式规则,Oracle中的正则表达式(及函数)详解
1.概述 相信大家对正则表达式都不陌生,从linux下的命令到Java等编程语言,正则表达式无处不在,虽然我们实际使用的时候也并不一定太多,但是当我们要处理字符串时,它确实是一个强大的工具. 上一篇文 ...
- oracle中的to_number,Oracle中to_number()函数的用法
to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...
最新文章
- kosaraju算法
- 计算机专业英语文章翻译,计算机专业英语英汉双语文章翻译
- Media Player网页播放音频,视频,图片总汇
- React UI 库:React Suite 3.7.8 版本更新
- jsfiddle网站介绍
- pycharm 无法导包、无法导入模块(模块名不能含有连接符“-”)
- python求均方根误差_python之MSE、MAE、RMSE的使用
- C语言计算分段函数pta,PTA浙大版《C语言程序设计(第3版)》题目集 练习2-11 计算分段函数[2] (10分)...
- 15 设置系统分词器
- ffmpeg之图片转gif
- Pandas系列(十三)分层索引MultiIndex
- 微信小程序抖音实战-支持手机播放小视频
- 2021年下半年软考系统集成项目管理工程师真题及答案解析
- 一峰说:SpringCloud的基础了解和使用
- FineReport中cjk编码转换
- 网吧服务器安装操作系统,网吧无盘技术的安装与使用---服务器的操作系统为为wind...
- Python自动化实践
- Android 加固应用
- 计算机光盘模式,Win7系统自带光盘刻录功能如何使用?
- 有道云笔记网页剪chrome登录不上,反复登录问题
热门文章
- 程序 峰谷值 提取_ABAQUS:Python后处理—用excel提取位移、体积、应变等变化(一)...
- 一个域名可以绑定多个公众号_如何在同一个浏览器中同时登录多个公众号?
- python多个分隔符分割字符串_Python中带有多个分隔符的拆分字符串
- 如何判断一个类是否是线程安全(可重入)的?
- matlab 低秩矩阵分解,低秩分解的matlab代码看不懂,分解的两个矩阵在哪呀??...
- LCD液晶屏静电防护方案
- 聚焦可信AI与产业应用,百度联合发起千言计划实现情感分析2.0升级
- 求职中最吃香的编程语言:JavaScript、Java 和 Python
- linux base64 文件大小,linux下使用base64进行加密和解密
- python中readline的用法_python中readline的用法