sql 导航函数 lag
返回上一行中的 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相关推荐
- sql 导航函数 lead
返回后续行的 值.更改 offset 值会改变所返回的后续行:默认值是 1,表示窗口框架中的下一行 WITH finishers AS(SELECT 'Sophia Liu' as name,TIME ...
- sql导航函数 NTH_VALUE
返回当前窗口框架中第 N 行的 值 WITH finishers AS(SELECT 'Sophia Liu' as name,TIMESTAMP '2016-10-18 2:51:45' as fi ...
- SQL开窗函数之前后函数(LEAD、LAG)
开窗函数 当我们需要进行一些比较复杂的子查询时,聚合函数就会非常的麻烦,因此可以使用开窗函数进行分组再运用函数查询.窗口函数既可以显示聚集前的数据,也可以显示聚集后的数据,可以在同一行中返回基础行的列 ...
- sql 自定义函数 示例_SQL滞后函数概述和示例
sql 自定义函数 示例 In the article SQL Server Lead function overview and examples, we explored Lead functio ...
- 在SQL Server中使用SQL Coalesce函数
This article explores the string manipulation using SQL Coalesce function in SQL Server. 本文探讨了在SQL S ...
- Hive3入门至精通(基础、部署、理论、SQL、函数、运算以及性能优化)15-28章
Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)15-28章 [Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)1-14章](https://blog. ...
- mysql lag over_lag函数(lag函数用法)
SELECT lag(task_id, 1, null) over(PARTITION BY *** ORDER BY ***), lead(task_id, 1, null) over(PARTIT ...
- flink sql常用函数
1. flink sql 时间函数 时间戳单位为秒 timeintervalunit时间单位:SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,或YEAR.selec ...
- sql avg函数使用格式_SQL AVG-SQL平均函数用语法示例解释
sql avg函数使用格式 什么是SQL平均(AVG)函数? (What is the SQL Average (AVG) Function?) "Average" is an A ...
最新文章
- Fragment有直接关系的关键性类FragmentManager,FragmentTransaction,FragmentActivity
- 现场丨2017中国计算机大会(CNCC2017)之李飞飞演讲:ImageNet之后,计算机视觉何去何从?
- 【字符串哈希】【哈希表】Aizu - 1370 - Hidden Anagrams
- Apache安装及jboss部署说明文档
- c++中的全排列函数next_permutation()
- 用python turtle库画正方形_用Python Turtle画一个正方形
- moodle分析笔记
- 为什么用python画图_为什么使用Matplotlib绘图太慢?
- linux系统redis单机版安装及设置解决DENIED Redis is running in protected mode because protected mode is enabled问题
- 学习英语,先记下留着后用
- 联想教育应用使用说明(7.6版本号)——第4章 网络控制工具的使用
- 如何为Java面试准备项目经验
- MATLAB绘制折线图和散点图
- 进入Java世界的第一个程序Hello world
- 【luogu P4218】珠宝商(SAM)(点分治)(根号分治)
- 巴比特 | 元宇宙每日必读:企业如何将业务转移到元宇宙?这7大步骤了解一下...
- iOS 定位和地图
- 【搬运】1 简谱和基本知识
- 手机端Alook浏览器手动抓取京东Cookie教程
- Mysql统计每个小时或半小时数据的数量