mysql窗口函数排名查询 与 连续出现的数字查询

排名查询

学会这一个查询,我们应该对该类型的查询 方法就能有一个了解,不然 如果下次遇到该类型的查询,我们依然分析不出

给你一张表,里面有id 和score字段,根据score的分数大小 排序 ,假如有相同的分数,按照相同的次序进行排行 

例子如下

该decimal 参数代表的 是  精度,(5,3)代表该数字只能有五个,包括小数点后面的,3代表小数点后面只能有三个  意思该 字段的范围在 -99.999 到99.999  如果是(5,0) 代表着只能是整数,且没有小数点   

插入的数据如下

查询到的例子如下

分析

首先 我们先查询到 score字段的所有值,然后按照降序排列,然后再看右边的rank字段,我们显然需要对我们的Scores 表进行分表的查询,问题是怎么得到 该每个字段的排名,正常的排名的话 

会根据 id 等按照顺序查询,但是这样显然得不到我们想要的结果  

我们可以分出来一个表 命名为s2  然后让s2表中的所有字段 跟s1表的所有字段进行 统计,如果s2的字段值大于等于s1的字段值 就count大于等于s1字段值的个数,根据count出来的个数进行排序就可以了 ,这样说可能比较抽象   我们举个例子  

举例

现在 我们有两张表  s1  s2 两张表的数据是相同的  ,对于s1 表中的score 分为5 的进行比对,s2表中发现大于等于s1表中的score 为5 的只有 一个 5 ,那么他count出来的数据就是1 ,而对于4.5 ,s2表中大于等于s1表中4.5的数据只有 5 和4.5 那么他count 出来的数据 就是 2   ,但是 有 两个3.5的情况下,大于等于3.5的值有5个,跟排名4不同,那么 我们就可以去重处理

sql语句

select s1.score,(
select  count( distinct s2.score) from Scores s2 where s2.score>=s1.score)as 'rank'
from Scores s1 order by  s1.score desc;

用窗口函数完成查询 

用窗口函数 也能达到类似的效果  

SELECTS.score,DENSE_RANK() OVER (ORDER BY S.score DESC) AS 'rank'
FROMScores S
ORDER BYS.score DESC;

如果是rank()窗口函数的话 排行就会变成

发现 会跳过5 这个排行

连续出现的数字 

给你一张logs表,查询同一个数字连续出现3次以上的 数字,注意是 连续出现三次以上

该情景也用到 球员得分排名,比如连续得分三次的球员名称等场景

查询结果应该如下

分析

1.三表联查

连续三次出现的情况,我们可以视为 一个数字的id 是升序的,而且他连续出现 ,那么他第一次出现的id =第二次出现的id-1,第二次出现的id 等于第三次出现的id-1,用3表联查 就可以,但这也是效率最低的情况

2.lead ()窗口函数

lead()窗口函数 的意思 就是  

将数据 往下 平移生成一个新的字段 , 我们直接看代码与具体实例 ,

表中的数据还是上文的表数据 

select num,lag(num,1)over() as a,lag(num,2)over () as b  from Logsas c

我们查询的出来数据如下

我们把 每一个数据 往下平移 ,比如说 第二行的原始数据1  .第一行向下平移就是a 列 内容为1,因为b列向下平移两次,而num所在对应只有第一行有数据,所以b列为空

然后以此组装生成了一个新的表 c  ,我们对表c的数据 进行 列内容的对比,去重就可以了

select  distinct c.num as ConsecutiveNums
from( select num,lag(num,1)over() as a,lag(num,2)over () as b  from Logs)as c
where c.num=c.a and c.b=c.a;

查询结果 

 

还有一个窗口函数row_number()窗口函数也是类似于该窗口函数的原理一样,生成一个新的表,对比一下,得出结论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/360302.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【山东】2024年夏季高考文化成绩一分一段表

文末有图片版,可直接保存下载!! 2024年夏季高考文化成绩一分一段表分数段全体-选考物理-选考化学-选考生物-选考思想政治-选考历史-选考地理分数段本段人数累计人数本段人数累计人数本段人数累计人数本段人数累计人数本段人数累计人数本段人…

Upload-Labs-Linux1 使用 一句话木马

解题步骤&#xff1a; 1.新建一个php文件&#xff0c;编写内容&#xff1a; <?php eval($_REQUEST[123]) ?> 2.将编写好的php文件上传&#xff0c;但是发现被阻止&#xff0c;网站只能上传图片文件。 3.解决方法&#xff1a; 将php文件改为图片文件&#xff08;例…

毕业生离校系统

摘 要 随着信息技术的快速发展和普及&#xff0c;越来越多的高校开始利用信息化手段来提升管理和服务效率。毕业生离校是高校管理工作中的一个重要环节&#xff0c;涉及到毕业生的个人信息、学业成绩、离校手续等多个方面。传统的离校流程往往繁琐、耗时&#xff0c;且容易出现…

Apple - Framework Programming Guide

本文翻译自&#xff1a;Framework Programming Guide&#xff08;更新日期&#xff1a;2013-09-17 https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183i 文章目录 一、框架编程指南简介…

永洪bi里topN的设置/用法

要实现的效果&#xff1a;实现通过输入参数&#xff0c;进行图表top的排序筛选 图示&#xff1a; 筛选前&#xff1a; 输入3&#xff0c;看top3的值&#xff1a; 输入-3&#xff0c;看倒数3个的值&#xff1a; 设置步骤&#xff1a; 1️⃣&#xff1a;添加一个“文本参数组件…

打造智能家居:用ESP32轻松实现无线控制与环境监测

ESP32是一款集成了Wi-Fi和蓝牙功能的微控制器&#xff0c;广泛应用于物联网项目。它由Espressif Systems公司开发&#xff0c;具有强大的处理能力和丰富的外设接口。下面我们将详细介绍ESP32的基础功能和引脚功能&#xff0c;并通过具体的实例项目展示其应用。 主要功能 双核处…

找不到mfc140u.dll怎么修复,mfc140u.dll丢失的多种修复方法

计算机丢失mfc140u.dll文件会导致依赖该文件的软件无法正常运行。mfc140u.dll是Microsoft Visual C 2015的可再发行组件之一&#xff0c;它属于Microsoft Foundation Class (MFC) 库&#xff0c;许多使用MFC开发的程序需要这个DLL文件来正确执行。丢失了mfc140u.dll文件。会导致…

数据结构需要每个都具体实现吗?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「数据结构的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;用c的stl能刷算法题是不…

水浅王八多

今天有三个被自媒体和韭菜们转疯的视频。 &#xff08;1&#xff09; 财政部公布&#xff1a;今年1-5月份证券交易印花税&#xff0c;同比去年1-5月份&#xff0c;降低50.8%。 其实是&#xff1a;2023年8月27日&#xff0c;为活跃资本市场&#xff0c;财政部、证监会和三大交易…

wondershaper 一款限制 linux 服务器网卡级别的带宽工具

文章目录 一、关于wondershaper二、文档链接三、源码下载四、限流测试五、常见报错1. /usr/local/sbin/wondershaper: line 145: tc: command not found2. Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist: No URLs.. 一、关于wonder…

【银河麒麟】云平台查看内存占用与实际内存占用不一致,分析处理过程,附代码

1.需求/问题描述 发现云平台查看内存占用与实际内存占用不一致。 2.分析过程 在系统中获取虚拟机内存使用率目前主要有两种方式&#xff0c;一种是通过virsh dommemstat获取&#xff0c;另外一种是通过qga接口获取。由于之前修复界面虚拟机cpu使用率时为qga接口获取&#xff…

MCP2515汽车CAN总线支持SPI接口的控制器芯片替代型号DPC15

器件概述 DPC15是一款独立CAN控制器&#xff0c;可简化需要与CAN总线连接的应用。可以完全替代兼容MCP2515 图 1-1 简要显示了 DPC15 的结构框图。该器件主要由三个部分组成&#xff1a; 1. CAN 模块&#xff0c;包括 CAN 协议引擎、验收滤波寄存 器、验收屏蔽寄存器、发送和接…

SpringBoot2+Vue3开发博客管理系统

项目介绍 博客管理系统&#xff0c;可以帮助使用者管理自己的经验文章、学习心得、知识文章、技术文章&#xff0c;以及对文章进行分类&#xff0c;打标签等功能。便于日后的复习和回忆。 架构介绍 博客管理系统采用前后端分离模式进行开发。前端主要使用技术&#xff1a;Vu…

VBA技术资料MF165:关闭当前打开的所有工作簿

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

宠物空气净化器哪家强?希喂、小米、安德迈谁最具性价比?

猫咪掉毛是一种正常的生理现象&#xff0c;每只猫咪都会周期性地更换毛发。但是&#xff0c;当您发现家里的沙发、地毯、衣物、甚至空气中都漂浮着难以清理的猫浮毛时。还是会很烦恼&#xff0c;最重要的是空气中的浮毛如果不及时清理的话长时间停留在空气中会对身体造成一定威…

2021数学建模C题目– 生产企业原材料的订购与运输

C 题——生产企业原材料的订购与运输 思路&#xff1a;该题主要是通过对供应商的供货能力和运送商的运货能力进行估计&#xff0c;给出合适的材料订购方案 程序获取 第一题问题思路与结果&#xff1a; 对 402 家供应商的供货特征进行量化分析&#xff0c;建立反映保障企业生…

Hive期末总结

hive的概念&#xff0c;谁开发的 Apache Hive 是一个Apache 软件基金会维护的开源项目 Facebook贡献 hive是一个基于hadoop的数据仓库工具&#xff08;对数据汇总查询和分析的工具&#xff09; hive执行原理 Hive通过给用户提供的一系列交互接口&#xff0c;接收到用户的指令…

IDS Gaia-X Catena-X Manufacturing-X的关系

来源&#xff1a;小盟科普丨Catena-X数据空间在汽车领域落地https://mp.weixin.qq.com/s/Ftp0UGAohsh4ltLn3DylAw

Linux常用基本命令

linux目录 1.查看linux本机ip ip addr 2.新建文件夹 mkdir 文件夹名 3.新建文件 touch 文件名.后缀 4.删除文件 rm 文件名.后缀 5.删除文件 rm -r 文件名 6.不询问直接删除 rm -rf 文件名/文件名/ 7.显示目录下文件&#xff0c;文件夹 作用&#xff1a;显示指定目…

【Apache Doris】如何实现高并发点查?(原理+实践全析)

【Apache Doris】如何实现高并发点查&#xff1f;&#xff08;原理实践全析&#xff09; 一、背景说明二、原理介绍三、环境信息四、Jmeter初始化五、参数预调六、用例准备七、高并发实测八、影响因素九、总结 本文主要分享 Apache Doris 是如何实现高并发点查的&#xff0c;以…