返回上一行中的 value_expression 值。更改 offset 值会改变所返回的上一行;默认值是 1,表示窗口框架中的上一行。
WITH finishers AS(SELECT 'Sophia Liu' as name,TIMESTAMP '2016-10-18 2:51:45' as finish_time,'F30-34' as divisionUNION ALL SELECT 'Lisa Stelzner', TIMESTAMP '2016-10-18 2:54:11', 'F35-39'UNION ALL SELECT 'Nikki Leith', TIMESTAMP '2016-10-18 2:59:01', 'F30-34'UNION ALL SELECT 'Lauren Matthews', TIMESTAMP '2016-10-18 3:01:17', 'F35-39'UNION ALL SELECT 'Desiree Berry', TIMESTAMP '2016-10-18 3:05:42', 'F35-39'UNION ALL SELECT 'Suzy Slane', TIMESTAMP '2016-10-18 3:06:24', 'F35-39'UNION ALL SELECT 'Jen Edwards', TIMESTAMP '2016-10-18 3:06:36', 'F30-34'UNION ALL SELECT 'Meghan Lederer', TIMESTAMP '2016-10-18 3:07:41', 'F30-34'UNION ALL SELECT 'Carly Forte', TIMESTAMP '2016-10-18 3:08:58', 'F25-29'UNION ALL SELECT 'Lauren Reasoner', TIMESTAMP '2016-10-18 3:10:14', 'F30-34')
SELECT name,finish_time,division,LAG(name)OVER (PARTITION BY division ORDER BY finish_time ASC) AS preceding_runner
FROM finishers;
name finish_time division preceding_runner
Carly Forte 03:08:58 F25-29 NULL
Sophia Liu 02:51:45 F30-34 NULL
Nikki Leith 02:59:01 F30-34 Sophia Liu
Jen Edwards 03:06:36 F30-34 Nikki Leith
Meghan Lederer 03:07:41 F30-34 Jen Edwards
Lauren Reasoner 03:10:14 F30-34 Meghan Lederer
Lisa Stelzner 02:54:11 F35-39 NULL
Lauren Matthews 03:01:17 F35-39 Lisa Stelzner
Desiree Berry 03:05:42 F35-39 Lauren Matthews
Suzy Slane 03:06:24 F35-39 Desiree Berry
下一个示例使用可选的 offset 参数
WITH finishers AS(SELECT 'Sophia Liu' as name,TIMESTAMP '2016-10-18 2:51:45' as finish_time,'F30-34' as divisionUNION ALL SELECT 'Lisa Stelzner', TIMESTAMP '2016-10-18 2:54:11', 'F35-39'UNION ALL SELECT 'Nikki Leith', TIMESTAMP '2016-10-18 2:59:01', 'F30-34'UNION ALL SELECT 'Lauren Matthews', TIMESTAMP '2016-10-18 3:01:17', 'F35-39'UNION ALL SELECT 'Desiree Berry', TIMESTAMP '2016-10-18 3:05:42', 'F35-39'UNION ALL SELECT 'Suzy Slane', TIMESTAMP '2016-10-18 3:06:24', 'F35-39'UNION ALL SELECT 'Jen Edwards', TIMESTAMP '2016-10-18 3:06:36', 'F30-34'UNION ALL SELECT 'Meghan Lederer', TIMESTAMP '2016-10-18 3:07:41', 'F30-34'UNION ALL SELECT 'Carly Forte', TIMESTAMP '2016-10-18 3:08:58', 'F25-29'UNION ALL SELECT 'Lauren Reasoner', TIMESTAMP '2016-10-18 3:10:14', 'F30-34')
SELECT name,finish_time,division,LAG(name, 2)OVER (PARTITION BY division ORDER BY finish_time ASC) AS two_runners_ahead
FROM finishers;
name finish_time division two_runners_ahead
Carly Forte 03:08:58 F25-29 NULL
Sophia Liu 02:51:45 F30-34 NULL
Nikki Leith 02:59:01 F30-34 NULL
Jen Edwards 03:06:36 F30-34 Sophia Liu
Meghan Lederer 03:07:41 F30-34 Nikki Leith
Lauren Reasoner 03:10:14 F30-34 Jen Edwards
Lisa Stelzner 02:54:11 F35-39 NULL
Lauren Matthews 03:01:17 F35-39 NULL
Desiree Berry 03:05:42 F35-39 Lisa Stelzner
Suzy Slane 03:06:24 F35-39 Lauren Matthews
以下示例使用默认值替换 NULL 值
WITH finishers AS(SELECT 'Sophia Liu' as name,TIMESTAMP '2016-10-18 2:51:45' as finish_time,'F30-34' as divisionUNION ALL SELECT 'Lisa Stelzner', TIMESTAMP '2016-10-18 2:54:11', 'F35-39'UNION ALL SELECT 'Nikki Leith', TIMESTAMP '2016-10-18 2:59:01', 'F30-34'UNION ALL SELECT 'Lauren Matthews', TIMESTAMP '2016-10-18 3:01:17', 'F35-39'UNION ALL SELECT 'Desiree Berry', TIMESTAMP '2016-10-18 3:05:42', 'F35-39'UNION ALL SELECT 'Suzy Slane', TIMESTAMP '2016-10-18 3:06:24', 'F35-39'UNION ALL SELECT 'Jen Edwards', TIMESTAMP '2016-10-18 3:06:36', 'F30-34'UNION ALL SELECT 'Meghan Lederer', TIMESTAMP '2016-10-18 3:07:41', 'F30-34'UNION ALL SELECT 'Carly Forte', TIMESTAMP '2016-10-18 3:08:58', 'F25-29'UNION ALL SELECT 'Lauren Reasoner', TIMESTAMP '2016-10-18 3:10:14', 'F30-34')
SELECT name,finish_time,division,LAG(name, 2, 'Nobody')OVER (PARTITION BY division ORDER BY finish_time ASC) AS two_runners_ahead
FROM finishers;
name finish_time division two_runners_ahead
Carly Forte 03:08:58 F25-29 Nobody
Sophia Liu 02:51:45 F30-34 Nobody
Nikki Leith 02:59:01 F30-34 Nobody
Jen Edwards 03:06:36 F30-34 Sophia Liu
Meghan Lederer 03:07:41 F30-34 Nikki Leith
Lauren Reasoner 03:10:14 F30-34 Jen Edwards
Lisa Stelzner 02:54:11 F35-39 Nobody
Lauren Matthews 03:01:17 F35-39 Nobody
Desiree Berry 03:05:42 F35-39 Lisa Stelzner
Suzy Slane 03:06:24 F35-39 Lauren Matthews

sql 导航函数 lag相关推荐

  1. sql 导航函数 lead

    返回后续行的 值.更改 offset 值会改变所返回的后续行:默认值是 1,表示窗口框架中的下一行 WITH finishers AS(SELECT 'Sophia Liu' as name,TIME ...

  2. sql导航函数 NTH_VALUE

    返回当前窗口框架中第 N 行的 值 WITH finishers AS(SELECT 'Sophia Liu' as name,TIMESTAMP '2016-10-18 2:51:45' as fi ...

  3. SQL开窗函数之前后函数(LEAD、LAG)

    开窗函数 当我们需要进行一些比较复杂的子查询时,聚合函数就会非常的麻烦,因此可以使用开窗函数进行分组再运用函数查询.窗口函数既可以显示聚集前的数据,也可以显示聚集后的数据,可以在同一行中返回基础行的列 ...

  4. sql 自定义函数 示例_SQL滞后函数概述和示例

    sql 自定义函数 示例 In the article SQL Server Lead function overview and examples, we explored Lead functio ...

  5. 在SQL Server中使用SQL Coalesce函数

    This article explores the string manipulation using SQL Coalesce function in SQL Server. 本文探讨了在SQL S ...

  6. Hive3入门至精通(基础、部署、理论、SQL、函数、运算以及性能优化)15-28章

    Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)15-28章 [Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)1-14章](https://blog. ...

  7. mysql lag over_lag函数(lag函数用法)

    SELECT lag(task_id, 1, null) over(PARTITION BY *** ORDER BY ***), lead(task_id, 1, null) over(PARTIT ...

  8. flink sql常用函数

    1. flink sql 时间函数 时间戳单位为秒 timeintervalunit时间单位:SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,或YEAR.selec ...

  9. sql avg函数使用格式_SQL AVG-SQL平均函数用语法示例解释

    sql avg函数使用格式 什么是SQL平均(AVG)函数? (What is the SQL Average (AVG) Function?) "Average" is an A ...

最新文章

  1. Fragment有直接关系的关键性类FragmentManager,FragmentTransaction,FragmentActivity
  2. 现场丨2017中国计算机大会(CNCC2017)之李飞飞演讲:ImageNet之后,计算机视觉何去何从?
  3. 【字符串哈希】【哈希表】Aizu - 1370 - Hidden Anagrams
  4. Apache安装及jboss部署说明文档
  5. c++中的全排列函数next_permutation()
  6. 用python turtle库画正方形_用Python Turtle画一个正方形
  7. moodle分析笔记
  8. 为什么用python画图_为什么使用Matplotlib绘图太慢?
  9. linux系统redis单机版安装及设置解决DENIED Redis is running in protected mode because protected mode is enabled问题
  10. 学习英语,先记下留着后用
  11. 联想教育应用使用说明(7.6版本号)——第4章 网络控制工具的使用
  12. 如何为Java面试准备项目经验
  13. MATLAB绘制折线图和散点图
  14. 进入Java世界的第一个程序Hello world
  15. 【luogu P4218】珠宝商(SAM)(点分治)(根号分治)
  16. 巴比特 | 元宇宙每日必读:企业如何将业务转移到元宇宙?这7大步骤了解一下...
  17. iOS 定位和地图
  18. 【搬运】1 简谱和基本知识
  19. 手机端Alook浏览器手动抓取京东Cookie教程
  20. Mysql统计每个小时或半小时数据的数量

热门文章

  1. 基于概率统计分析的应用流特征分析
  2. C++继承的概念及语法
  3. PDF文件使用指南(转载)
  4. 'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件
  5. es6 函数解构的用途
  6. JAVA大数_棋盘覆盖
  7. php session redis 配置
  8. 【转载】Android数据库(SqlLite)操作和db文件查看
  9. load average
  10. WaitForMultipleObjects用法详解,一看就懂