mssql sqlserver 分析函数lag lead使用说明及简介
下文讲述sqlserver 2012中 lag、lead分析函数的用法及简介
实验环境: sqlserver 2012
lag、lead:
可以不通过联结的形式获取上下相邻(指定偏移量)行的指定列的数据
lag 向前指定数据
lead向后指定数据
——————–
lag、lead参数说明:
参数1:列名
参数2:偏移量offset
参数3:进行偏移量计算后,无法得到结果时的缺省值
例:
lag分析函数举例说明
declare @test table(keyId int,info varchar(20),qty int) insert into @test (keyId,info,qty)values(-1,'a',2) insert into @test (keyId,info,qty)values(1,'a',2) insert into @test (keyId,info,qty)values(2,'a',10) insert into @test (keyId,info,qty)values(3,'b',8) insert into @test (keyId,info,qty)values(3,'b',8) insert into @test (keyId,info,qty)values(5,'d',8) insert into @test (keyId,info,qty)values(6,'b',9) /*例: lag 在info群组中,向前偏移一行, 无法找到值时,使用默认值"-9"keyId=-1 在info ='a'群组中,向前偏移一行,无数据,所以为默认值-9keyId=1 在info ='a'群组中,向前偏移一行,上一行数据为-1 所以显示-1keyId=2 在info ='a'群组中,向前偏移一行,上一行数据为-1 所以显示-1keyId=3 在info ='b'群组中,向前偏移一行,无数据,所以为默认值-9keyId=3 在info ='b'群组中,向前偏移一行,上一行数据为-1 所以显示3keyId=6 在info ='b'群组中,向前偏移一行,上一行数据为-1 所以显示3keyId=5 在info ='d'群组中,向前偏移一行,无数据,所以为默认值-9 */ select *, lag(keyId,1,'-9') over(partition by info order by keyId) as lagInfo from @test
mssql_sqlserver_lag详解举例-1
—————————————
mssql_sqlserver_lag详解举例-2
lead分析函数举例说明
lead 向后查找指定列数据,作为返回值,同lag的唯一区别为:查找方向不一样
declare @test table(keyId int identity,info varchar(20),qty int) insert into @test (info,qty)values('a',2) insert into @test (info,qty)values('a',2) insert into @test (info,qty)values('a',10) insert into @test (info,qty)values('b',8) insert into @test (info,qty)values('b',8) insert into @test (info,qty)values('d',8) insert into @test (info,qty)values('b',9) select *, lead(keyId,1,'-9') over(order by keyId) as lagInfo from @test
mssql_sqlserver_lead详解举例-1
mssql sqlserver 分析函数lag lead使用说明及简介相关推荐
- MSSQL Sql加密函数 hashbytes 用法简介
原文:MSSQL Sql加密函数 hashbytes 用法简介 转自:http://www.maomao365.com/?p=4732 一.mssql sql hashbytes 函数简介 hashb ...
- mssql sqlserver in 关键字在值为null的应用举例
原文:mssql sqlserver in 关键字在值为null的应用举例 转自:http://www.maomao365.com/?p=6873 摘要: 下文通过案例分析in 关键字在值为null的 ...
- mssql sqlserver 对不同群组对象进行聚合计算的方法分享
mssql sqlserver 对不同群组对象进行聚合计算的方法分享 原文:mssql sqlserver 对不同群组对象进行聚合计算的方法分享 摘要: 下文讲述通过一条sql语句,采用over关键字 ...
- mssql sqlserver 不固定行转列数据(动态列)
mssql sqlserver 不固定行转列数据(动态列) 原文:mssql sqlserver 不固定行转列数据(动态列) 转自:http://www.maomao365.com/?p=5471 摘 ...
- MsSQL SQLServer 查询 表中字段的及类型是否为空
MsSQL SQLServer 查询 表中字段的及类型是否为空 SELECT name AS column_name,TYPE_NAME(system_type_id) AS column_typ ...
- oracle lag()_lead(),ORACLE中lag() lead()函数使用
链接:http://www.xifenfei.com/784.html 标题:lag() lead()函数使用 作者:惜分飞版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.] 1 ...
- hive 开窗函数之lag,lead,first_value,last_value
概念 测试数据 -- 数据准备: 姓名,购买日期,购买数量 saml 2018-01-01 10 saml 2018-01-08 55 tony 2018-01-07 50 saml 2018-01- ...
- oracle 的lag,oracle分析函数lag
这是使用分析函数的Oracle方法论. with data as ( SELECT 1 trip_id, to_date('20080801 13:30:00','YYYYMMDD HH24:mi:s ...
- clickhouse lag/lead
clickhouse中的lead和lag实现有多种方法,在标准的SQL中使用的windows function即可实现. 示例数据: CREATE TABLE llexample (g Int32,a ...
最新文章
- AJAX ControlToolkit学习日志-ModalPopupExtender(16)
- R语言构建xgboost模型:基于叶子索引衍生出新的特征并进行独热编码(one-hot encoding)之后构建新的模型、比较加入叶子索引特征的模型的分类性能提升
- 深度解析大数据可视化管理平台的监控功能
- Linux 操作系统太难?先爬过这 6 个陡坡
- git wechat.class.php,wechat-php-sdk/qywechat.class.php at master · gitye/wechat-php-sdk · GitHub
- 企业数字化转型到底是什么?带你一图看懂答案
- PostgreSQL 获取拼音首字母的函数 - 摘自互联网
- 技术不错的我去面试大厂,5分钟,就被秒了!憋屈~
- 一文看懂中国互联网二十年
- Unity中表格制作与动态生成
- c语言汇率转换代码_原生JS实现汇率转换功能代码实例
- 北京内推 | 微软亚洲研究院智能多媒体组招聘CV/NLU/RL方向算法实习生
- 使用python读写灰度图像
- linux 光标切换快捷键,光标操作快捷键,光标快捷键
- 阿铭Linux_传统IDC 部署网站学习笔记20190129
- NTC热敏电阻基础以及应用和选择(转)
- “伊凡 C普”第一式-内存管理
- Linux:pingpong机制的理解
- 《Head First jQuery》读书笔记
- IIS 应用程序池自动停止处理