Mysql查询窗口函数之按序号取元素详解

需求概述

查询以课程(course)分区以分数(score)逆序的窗口里的第一个、最后一个和第2个元素对应的值。示例表数据见下:

SELECT '数学' course, 40 score, '张三' name UNION
SELECT  '数学' course,  60 score, '李四' name UNION
SELECT  '数学' course, 70 score, '王二' name UNION
SELECT  '数学' course, 55 score,  '赵钱' name UNION
SELECT  '英语' course,  65 score,  '张三' name UNION
SELECT  '英语' course,  70 score, '李四' name UNION
SELECT  '语文' course,  83 score, '张三' name

问题分析

该需求需要借助窗口函数的FIRST_VALUE、LAST_VALUE、NTH_VALUE函数来实现,其中针对窗口里的最后一个元素需要界定它的范围。

SQL代码

SELECT FIRST_VALUE(score) OVER w first_value,
LAST_VALUE(score) OVER w as last_value,LAST_VALUE(score) OVER (PARTITION BY courseORDER BY score DESC
RANGE BETWEENUNBOUNDED PRECEDING ANDUNBOUNDED FOLLOWING) reallast_value,NTH_VALUE(score,3) OVER w as nth_value,
score,
course
FROM
(
SELECT '数学' course, 40 score, '张三' name UNION
SELECT  '数学' course,  60 score, '李四' name UNION
SELECT  '数学' course, 70 score, '王二' name UNION
SELECT  '数学' course, 55 score,  '赵钱' name UNION
SELECT  '英语' course,  65 score,  '张三' name UNION
SELECT  '英语' course,  70 score, '李四' name UNION
SELECT  '语文' course,  83 score, '张三' name
)A
WINDOW w AS (PARTITION BY course order by score DESC)

执行结果

窗口分析函数19_Mysql查询窗口函数里第一个 最后一个 第N个元素的值的案例详解(FIRST_VALUE LAST_VALUE NVH_VALUE)相关推荐

  1. go mongodb排序查询_Kotlin与MongoDB整合CURD案例详解

    1.mongodb的低版本bson无法转换类型 比如MongoDB数据库表的字段类型为Decimal,实体类用String去定义就会报如下错误 No converter found capablof ...

  2. 【前端就业课 第一阶段】HTML5 零基础到实战(六)表格详解

    注意:手机(APP)打开,内容显示更佳,不会的私聊博主即可 想要拿代码或加入学习计划(** 博主会监督你并且教你写文章 **)的拉到最下面(PC端Web打开)加博主即可,目录也在最下面. 参加博主前端 ...

  3. 查找窗口隐藏了怎么办_如何还原U盘隐藏空间 U盘隐藏空间还原方法【详解】

    如何还原u盘隐藏空间?经常运用u盘的朋友,最常遇到的问题就是这个了.好不容易女神开口找我要资料,结果u盘显示储存空间不够,爱情的巨轮说沉就沉啊.为了解救处在水深火热的单身党们,小编为大家分享三种详细的 ...

  4. mysql查询加伪列_SQL Server数据库中伪列及伪列的含义详解

    SQL Server中的伪列 下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值:对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个 ...

  5. sql查询出的字段切割_SPL 简化 SQL 案例详解:多层固定分组

    在数据库应用开发中,我们经常需要面对各种复杂的SQL计算,多层固定分组就是其中一种.实现该算法的思路是用left join语句将源数据按照固定的依据对齐,但由于该算法往往涉及分组汇总.行间计算.填补缺 ...

  6. 媒体查询(@media语法、案例)详解

    媒体查询 @media 语法 1. 直接写在 CSS 样式中 2. 针对不同的媒体设备,从外部链入不同的 stylesheets(外部样式表) 使用 @media 实现网页变色龙 @media 语法 ...

  7. python代码案例详解-Python实现电视里的5毛特效实例代码详解

    前段时间接触了一个批量抠图的模型库,而后在一些视频中找到灵感,觉得应该可以通过抠图的方式,给视频换一个不同的场景,于是就有了今天的文章. 我们先看看能实现什么效果,先来个正常版的,先看看原场景: 下面 ...

  8. git图文工具_全网最详细的Windows里Git client客户端管理工具SourceTree的下载与安装(图文详解)...

    不多说,直接上干货! 很多人用Git命令行不熟练,那么可以尝试使用SourceTree进行操作. 安装之前的必备 (1)Git的安装 (2)net Framework 4.5 win7/8需要.net ...

  9. java里冒泡排序编程案例_冒泡排序法-java案例详解

    /** * 功能:冒泡排序法 * 思想:通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的排序码, * ,若发现逆序这交换,使得排序码较小的元素逐渐从后部移向前部(从下标较大的单元移 ...

最新文章

  1. python基础之数据类型与变量
  2. 学会扶墙的机器人:没有什么能让我倒下!
  3. IP管理提高业务网络安全性的3种方式——Vecloud
  4. httpclient 学习
  5. 【loj#6220】sum
  6. Mysql8秒级加字段_Mysql8.0秒级加字段
  7. linux系统安装并配置oracle客户端
  8. java混淆工具zelix比较_vscode,java环境
  9. 【汇编语言与计算机系统结构笔记06】地址计算指令,lea / leal,x86-32与x86-64下的swap对比,汇编的格式对比(Intel/Microsoft Differs from GAS)
  10. 简单使用NSURLConnection、NSURLRequest和NSURL
  11. EXTJS4.0 EXT文件目录,本地加载文档,命名规范
  12. 苹果手机型号对应表及尺寸
  13. 专业PE优盘启动制作工具 - 优启通
  14. 计算机应用技术个人研修总结,学习应用信息技术的研修体会总结
  15. 计算机操作系统-磁盘存储器
  16. 肖特基二极管焊接注意事项和判断正负极的方法
  17. 使用数字芯片将5V转3.3V方案电路图
  18. ActiveMQ 源码学习 2:从 CommandTypes 谈常量接口反模式
  19. matlab 离散控制系统仿真,基于Matlab的离散控制系统仿真.doc
  20. WhatsApp首次和东家Facebook实现用户数据互联

热门文章

  1. VTK:图像透明度用法实战
  2. wxWidgets:添加控件
  3. wxWidgets:使用文本模板
  4. boost::process::throw_on_error相关的测试程序
  5. boost::gil::is_planar用法的测试程序
  6. boost::geometry::box_view用法的测试程序
  7. 拷贝boost::exception的测试程序
  8. GDCM:Patch File的测试程序
  9. DCMTK:OFOptional的单元测试
  10. VTK:可视化算法之LOxSeeds