mysql 8.0 窗口函数 之 序号函数 与 sql server 序号函数 一样

news2024/10/6 0:33:46

sql server 序号函数

序号函数

  1. ROW_NUMBER() 顺序排序
  2. RANK() 并列排序,会跳过重复的序号,比如序号为1,1,3
  3. DENSE_RANK() 并列排序,不会跳过重复的序号,比如 序号为 1,1,2

语法结构

函数 over (  [ partition by 字段名1, [ 字段2,。。。字段n]  order by 字段名 ASC | DESC  ] )

## 或者
函数 over 窗口名  ... ..window 窗口名  as ( [ partition by 字段名  order by 字段名  asc  |  DESC ] )

### over  关键字 指定函数窗口的范围
       如果省略后面括号中的内容,则窗口会包含满足where 条件的所有记录,窗口函数会基于所有满足where条件的记录  **进行计算**
       如果over 关键字后面的括号不为空,则可以使用如下语句设置窗口
       窗口名:为窗口设置一个别名,用来表示窗口,  放在  sql  最后位置
       partition by 子句:指定窗口函数按照哪些字段进行分组。分组后,窗口函数可以在**每个分组中分别**执行。
       order by 子句:指定窗口函数按照哪些字段进行排序,执行排序操作使窗口函数按照排序后的数据记录的**顺序**进行编号
       

select  RANK() over ( partition by course by  score  desc ) as 排名,stu_name
from   stu_grade


#   方法2 
select  RANK() over  cnd  as 排名,stu_name
from   stu_grade
where window cnd as  ( partition by course by  score  desc ) 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

窗口函数的优点

使用窗口函数,只用了一步就完成了查询,而且,由于没有用到临时表,执行的效率也更高了。很显然,在这种需要用到分组统计的结果对每一条记录进行计算的场景下,使用窗口函数更好

窗口函数的作用类似于在查询中对数据进行分组,不同的是,分组操作会把分组的结果聚合成一条记录,而窗口函数是将结果置于每一条数据记录中。

窗口函数可分为: ①静态窗口函数②动态窗口函数
静态窗口函数的窗口大小是固定的,不会因为记录的不同而不同
动态窗口函数的窗口大小会随着记录的不同而变化。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【树莓派打怪升级】:玩转个人Web世界!

文章目录 概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS设置 Apache Web 服务器测试 web 站点安装静态样例站点 将web站点发布到公网安装 Cpolarcpolar进行token认证生成cpolar随机域名网址生成cpolar二级子域名将参数保存到cpolar配置文件中测试修改后配置文件配置cpola…

MFC——base编码和json数据

目录 1. JSON是什么 2. base64是什么 Base64是一种编解码算法 1. JSON是什么 JSON 是一种数据格式。采用完全独立于语言的文本格式, 因为易读, 易写, 易解析的特性成为理想的数据交换语言。主要有三种类型的值:简单值(字符串, 数字, 布尔, null), 对象, 数组。 长这样的数…

AI Agent在情景猜谜场景下的AgentBench基准测试

目录 AgentBench评估哪些场景? 近日,来自清华大学、俄亥俄州立大学和加州大学伯克利分校的研究者设计了一个测试工具——AgentBench,用于评估LLM在多维度开放式生成环境中的推理能力和决策能力。研究者对25个LLM进行了全面评估,包括基于API的商业模型和开源模型。 他们发现…

什么是eval()?eval是用来干什么的?

一、什么是eval()? eval() 是 JavaScript 中的一个全局函数,用于解析并执行传递给它的字符串作为 JavaScript 代码。 二、eval()是用来干什么的? 当调用 eval() 时,它会将传入的字符串参数视为 JavaScript 代码,并在调用位置执…

KEPServerEX 助力选矿厂生产优化升级

背景 客户是一家系统集成商,在山西某选矿厂项目中为业主提供一系列的设备安装及通讯支持,为了更高效节能的完成选矿环节,客户需要对设备实时状态进行精确监控,并将需要的数据记录到数据库中,方便后期进行数据追溯、大数…

【无标题】 欢迎使用Markdown编辑器

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

继承中的构造与析构

思考 如何初始化父类成员? 父类构造函数和子类构造函数有什么关系? 子类对象的构造 子类中可以定义构造函数 子类构造函数 必须对继承而来的成员进行初始化 直接通过初始化列表或者赋值的方式进行初始化调用父类构造函数进行初始化 父类构造函数在子…

实业兴国 守护种源 —— 白露木實®农业的活力之风

高科技领域,芯片是生命线;而在农业领域,种源与芯片在高科技领域的重要性是相同的。保护、发展、培育我国的种质资源,是中国农业发展至为关键的一环。但是,因为思想、观念、认识、技术等方面的原因,让我们错…

营销系统类型有哪些?广州市营销系统开发推荐

营销系统是能够让企业实现与客户的价值交换,并从中获得销售收入的系统。企业的日常经营离不开营销推广活动,为了让用户获得更好的营销体验、也为了企业更快捷简便地提供营销服务,自然少不了对于营销系统的使用。如开利网络蚓链营销系统拥有70…

3D虚拟数字人定制及数字人影片制作方案

在新消费大环境下,各行业正在向着数字化方向发展,数字人是行业进入数字化的主要入口,因此“数字人品牌”的营销模式不断出现于市场,为何品牌偏爱3D虚拟数字人定制? 因为数字人随着惯性动作捕捉技术的应用,成…

如何将数据从 InfluxDB 无缝接入到 TDengine 中?来看看

现在借助 TDengine 3.0 企业版和 TDengine Cloud,你可以无缝接入不同数据源的数据到 TDengine 中了,为了帮助大家更好地应用此功能,我们还输出了系列的教程文章。上期《TDengine 推出重磅功能,助力 MQTT 无缝数据接入》一文为大家…

中小企业如何搭建在线客服中心?

随着人工智能时代的到来,人工智能在企业服务领域的实际场景尤为迫切,对智能客户服务机器人的需求也出现在历史时刻。同时,随着用户对体验的需求不断提高,传统企业的客户服务部门往往陷入一定的自我矛盾循环。 目前,企…

【技术】百度 LBS 地址转换

百度 LBS 地址转换 LBS 简介LBS 案例注册百度账号开发文档创建应用Java 代码请求参数返回参数 LBS 简介 在移动互联网时代,地理定位服务(Location-Based Service, LBS)成为了许多应用程序的重要功能之一。百度作为中国最大的互联网公司之一&…

c语言(11)

第一题 第二题 第三题 第四题 第五题 第六题 第七题

【C++】基础:常见错误与异常处理

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍常见错误与异常处理。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&a…

IT运维:使用数据分析平台监控 Linux 节点

监控目标 监控 Linux 服务器的基本信息以及各项性能指标,包括: CPU 内存、Swap 网络 文件系统、磁盘 IO 解决方案 使用 Node exporter 收集硬件以及操作系统内核的指标数据,并通过 HTTP API 提供数据 使用 Vector agent 通过 Node export…

家庭装修设计施工团队进度小程序开发演示

传统装修企业获客难、获客成本高、竞争激烈,我们也是基于整个装修市场整体的需求,从用户角度出发帮助装修设计企业设计制作这款小程序。可以让传统装修企业搭上互联网的快车,形成线上获客裂变,降低获客成本提高客户信任度和签单率…

微信小程序 echarts 画多个横向柱状图

然后是json {"usingComponents": {"ec-canvas": "../../common/ec-canvas/ec-canvas"},"navigationBarTitleText": "主题活动" } ec-canvas获取方式 在链接里下载代码 然后copy ec-canvas文件夹到自己的项目 https://gi…

面试官问:说一说 Redis 的过期淘汰策略和内存淘汰策略 ?

目录 1. Redis 的过期淘汰策略 1.1 说一下定期删除的执行流程 2. Redis 的内存淘汰策略 2.1 LRU 和 LFU 有什么区别 3. Redis 中的过期淘汰策略和内存淘汰策略有什么区别 1. Redis 的过期淘汰策略 在了解过期淘汰策略之前,我们首先要知道 Redis 中的键值过期之后…

FreeRTOS软件定时器的原理以及使用实例

FreeRTOS软件定时器的使用 一.软件定时器介绍二.软件定时器工作原理三.创建软件定时器四.总结 一.软件定时器介绍 我们知道,如果是裸机系统的话,定时器都是由硬件中断完成的。还有一个中断服务函数。而FreeRTOS是一个操作系统,它提供了软件定…