下文讲述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使用说明及简介相关推荐

  1. MSSQL Sql加密函数 hashbytes 用法简介

    原文:MSSQL Sql加密函数 hashbytes 用法简介 转自:http://www.maomao365.com/?p=4732 一.mssql sql hashbytes 函数简介 hashb ...

  2. mssql sqlserver in 关键字在值为null的应用举例

    原文:mssql sqlserver in 关键字在值为null的应用举例 转自:http://www.maomao365.com/?p=6873 摘要: 下文通过案例分析in 关键字在值为null的 ...

  3. mssql sqlserver 对不同群组对象进行聚合计算的方法分享

    mssql sqlserver 对不同群组对象进行聚合计算的方法分享 原文:mssql sqlserver 对不同群组对象进行聚合计算的方法分享 摘要: 下文讲述通过一条sql语句,采用over关键字 ...

  4. mssql sqlserver 不固定行转列数据(动态列)

    mssql sqlserver 不固定行转列数据(动态列) 原文:mssql sqlserver 不固定行转列数据(动态列) 转自:http://www.maomao365.com/?p=5471 摘 ...

  5. MsSQL SQLServer 查询 表中字段的及类型是否为空

    MsSQL SQLServer 查询 表中字段的及类型是否为空 SELECT   name AS column_name,TYPE_NAME(system_type_id) AS column_typ ...

  6. oracle lag()_lead(),ORACLE中lag() lead()函数使用

    链接:http://www.xifenfei.com/784.html 标题:lag() lead()函数使用 作者:惜分飞版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.] 1 ...

  7. 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- ...

  8. oracle 的lag,oracle分析函数lag

    这是使用分析函数的Oracle方法论. with data as ( SELECT 1 trip_id, to_date('20080801 13:30:00','YYYYMMDD HH24:mi:s ...

  9. clickhouse lag/lead

    clickhouse中的lead和lag实现有多种方法,在标准的SQL中使用的windows function即可实现. 示例数据: CREATE TABLE llexample (g Int32,a ...

最新文章

  1. AJAX ControlToolkit学习日志-ModalPopupExtender(16)
  2. R语言构建xgboost模型:基于叶子索引衍生出新的特征并进行独热编码(one-hot encoding)之后构建新的模型、比较加入叶子索引特征的模型的分类性能提升
  3. 深度解析大数据可视化管理平台的监控功能
  4. Linux 操作系统太难?先爬过这 6 个陡坡
  5. git wechat.class.php,wechat-php-sdk/qywechat.class.php at master · gitye/wechat-php-sdk · GitHub
  6. 企业数字化转型到底是什么?带你一图看懂答案
  7. PostgreSQL 获取拼音首字母的函数 - 摘自互联网
  8. 技术不错的我去面试大厂,5分钟,就被秒了!憋屈~
  9. 一文看懂中国互联网二十年
  10. Unity中表格制作与动态生成
  11. c语言汇率转换代码_原生JS实现汇率转换功能代码实例
  12. 北京内推 | 微软亚洲研究院智能多媒体组招聘CV/NLU/RL方向算法实习生
  13. 使用python读写灰度图像
  14. linux 光标切换快捷键,光标操作快捷键,光标快捷键
  15. 阿铭Linux_传统IDC 部署网站学习笔记20190129
  16. NTC热敏电阻基础以及应用和选择(转)
  17. “伊凡 C普”第一式-内存管理
  18. Linux:pingpong机制的理解
  19. 《Head First jQuery》读书笔记
  20. IIS 应用程序池自动停止处理

热门文章

  1. 一文全解高级网格划分工具Fluent Meshing
  2. std::partial_sort 用法
  3. Collaborative Filtering for Implicit Feedback Datasets结论公式推导
  4. tex live iso linux,TeX Live安装教程
  5. Hypervisor 简介
  6. 如何证明函数有界_科技界正在抓住机会来证明不平等
  7. nexus 仓库类型_Nexus仓库构建
  8. 为什么游戏需要热更新?
  9. sprite(雪碧图,也叫精灵图)
  10. apache服务器wind 下载,安装及部署