mysql窗口函数rank_rank函数降序排名

mysql窗口函数rank_rank函数降序排名窗口函数MySQL8.0之后支持窗口函数。窗口指的是记录集合,窗口函数是指在某种条件的记录集合上执行的特殊函数。静态窗口是指不同的记录对应的窗口大小是固定的,而滑动窗口是指随着记录的不同窗口的大小是动态变化的。窗口函数分类1)专用窗口函数,包括后面要讲到的rank,dense_rank,row_number等专用窗口函数。2)聚合函数,如sum.avg,count,max,min等注意事项窗口函数原则上只能写在select子句中,因为窗口函数是对where或者groupby子句

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

窗口函数

MySQL8.0之后支持窗口函数。窗口指的是记录集合,窗口函数是指在某种条件的记录集合上执行的特殊函数。静态窗口是指不同的记录对应的窗口大小是固定的,而滑动窗口是指随着记录的不同窗口的大小是动态变化的。

窗口函数分类

1) 专用窗口函数,包括后面要讲到的rank, dense_rank, row_number等专用窗口函数。

2) 聚合函数,如sum. avg, count, max, min等

注意事项

窗口函数原则上只能写在select子句中,因为窗口函数是对where或者group by子句处理后的结果进行操作

窗口函数的基本语法

<窗口函数> over (partition by <用于分组的列名> order by <用于排序的列名>)

partition by:用来指定开窗的列。partition by进行分组并不会改变行数,相比之下group by分组会改变行数。
order by:用于指定数据在一个窗口内如何排序
frame:当前分区的子集,子句用来定义子集的规则,通常用来作为滑动窗口使用。

排序

RANK:跳跃排序
DENSE_RANK:连续排序
row_number:没有重复值的排序[记录相等也是不重复的]可以进行分页使用。

RANK:跳跃排序

select subject,score,rank() 
over (partition by subject order by score desc) as 'rank' 
from window_test_table;
subject score rank
数学 100 1
数学 100 1
数学 90 3
数学 90 3
数学 60 5

DENSE_RANK:连续排序

select subject,score,dense_rank() 
over (partition by subject order by score desc) as 'rank' 
from window_test_table;
subject score rank
数学 100 1
数学 100 1
数学 90 2
数学 90 2
数学 60 3

row_number:没有重复值的排序

select subject,score,row_number() 
over (partition by subject order by score desc) as 'rank' 
from window_test_table;
subject score rank
数学 100 1
数学 100 2
数学 90 3
数学 90 4
数学 60 5
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185957.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • -‘0’是什么意思_c语言中a是什么意思

    -‘0’是什么意思_c语言中a是什么意思是c语言中的位运算符:取反.0在内存中的存储方式是所有位为0,0000000000000000那么按位取反后位16个1(如果整形在你的机器上站16位),那么表示的数为-1.转载于:https://www.cnblogs.com/reality-soul/p/6141519.html…

  • currentstyle 织梦_织梦arclist标签支持高亮currentstyle属性方法

    currentstyle 织梦_织梦arclist标签支持高亮currentstyle属性方法找到include/taglib/arclist.lib.php第一步:查找:$channelid=$ctag->GetAtt(‘channelid’);替换:$channelid=$ctag->GetAtt(‘channelid’);$currentstyle=$ctag->GetAtt(‘currentstyle’);第二步:查找:$ct…

  • linux的vim怎么剪切,Linux.vim.多行复制、删除、剪切

    linux的vim怎么剪切,Linux.vim.多行复制、删除、剪切中间件Study-了解什么是中间件一.中间件含义:中间价是位于各种平台(硬件和操作系统)和各种应用之间的通用服务.帮助应用实现高效的.可靠的消息使应用之间实现便捷的互联互通高效.可靠构建企业应用实现分布式应用的快速搭建和部署注:中间…谈谈我印象中的JVM不足之处研究JVM也有一段时间了,其间也发现了它的很多不足之处,在此一一道来,由于本人对JVM的理解有限,如有错误的地方,还请大家指正:本…

  • 前端实现人员关系图谱

    前端实现人员关系图谱入职前端工作到现在差不多有一年半的时间了,和朋友偶然聊天的时候被问到,能不能用所学的前端知识做一个家族关系的族谱,可以使家族关系更加简单明了。当时听完这个需求,觉得可能还是蛮简单的,后来动手做的时候,发现族谱的连线,是需要根据返回的数据动态生成的,这就是我这个小前端,有点头秃了????。解决技术困难当时阻碍我前进的就是如何实现族谱的连线以及根据数据渲染它们的对应关系,后来在逛博客的过程中,发现了antdesign的charts图表组件。利用这个组件,如果可以进行一些改造,可能就可以实现族谱的关系图。

  • AttributeCollection类与Attributes.Add方法的使用[转载][通俗易懂]

    AttributeCollection类与Attributes.Add方法的使用[转载][通俗易懂]控件属性集合:AttributeCollection类AttitudeCollection隶属于namespaceSystem.Web.UI命名空间。AttributeCollection类属于集合类,具有其他集合所共有的一些属性。AttributeCollection类用来封装服务器控件的所有属性,可实现对服务器属性集合的添加和删除。控件的属性包括颜色、样式、名称等,这些属性都可以通过

  • 韦根36协议_韦根26协议

    韦根36协议_韦根26协议)ID[5]=DM;}RcvWG[0]=0;RcvWG[1]=0;RcvWG[2]=0;RcvEven=0;RcvOdd=0;CheckEven=0;CheckOdd=1;temp=0;Rcnt=0;RWGcnt=0;RCVOK=1;}}if(RCVOK)//读卡成功后,延时,再开始读下一次{EX0=0;for(i=200;i>0;i–)delay();EX0=1;}if(ClrDo…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号