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

news/2024/7/24 11:16:57 标签: mysql, 数据库

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.niftyadmin.cn/n/4961918.html

相关文章

[Common c/c++] 可变参数列表

c实现: 基本用法 c标准库提供一套可变参数列表使用方法,va_list / va_start / va_arg / va_end 。 demo: double average ( int num, ... ) {va_list arguments; double sum 0;/* Initializing arguments to store a…

微服务时代java异常捕捉

一、尽量不要使用e.printStackTrace(),而是使用log打印。 ​反例:​ try{ // do what you want }catch(Exception e){ e.printStackTrace(); } ​ 正例:​ try{ // do what you want }catch(Exception e){ log.info("你的程序有异常啦,{}",e)…

【Python】理解作用域:内置、全局、局部

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 一、基础数据类型1.整型1.函数中加global(2)函数中不加global(3)报错 二、组合数据类型1.列表…

「2024」预备研究生mem-带绝对值的一次与二次不等式方程和不等式图像

一、带绝对值的一次与二次不等式&方程和不等式图像 代入特殊值 带绝对值的方程不等式: 二、课后题

从头到尾说一次 Spring 事务管理(器) | 京东云技术团队

事务管理,一个被说烂的也被看烂的话题,还是八股文中的基础股之一。​ 本文会从设计角度,一步步的剖析 Spring 事务管理的设计思路(都会设计事务管理器了,还能玩不转?) 为什么需要事务管理&…

算法通关村第九关——中序遍历与搜索树

1 中序遍历和搜索树原理 二叉搜索树按照中序遍历正好是一个递增序列。其比较规范的定义是: 若它的左子树不为空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不为空,则右子树所有节点的值均大于它的根节点的值&…

学Pyhton静不下来,看了一堆资料还是很迷茫是为什么

一、前言 最近发现,身边很多的小伙伴学Python都会遇到一个问题,就是资料也看了很多,也花了很多时间去学习但还是很迷茫,时间长了又发现之前学的知识点很多都忘了,都萌生出了想半路放弃的想法。 让我们看看蚂蚁金服的大…

亿邦智库《2023数字化采购发展报告》解读,企企通推动企业采购数字化及供应链协同智能化发展

采购成本是企业成本控制的主体和核心。在当前供应链的背景下,采购数字化一方面可以通过提高效率来降低成本,增强合作和风险缓解能力;另一方面,信息、物流和资本流动的整合和重建将提高供应链的灵活性和灵活性,增强面向…