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

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


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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 第一章 语音信号处理概述

    第一章 语音信号处理概述一、语音交互语音交互(VUI:VoiceUserInterface)是指人与人或者人与设备通过自然语音进行信息传递的过程。语音交互的优势输入效率高:相对于键盘输入,语音输入的速度是传统输入方式的3倍以上(有权威统计分析得到的数据)。语音检索效率高;可跨空间,也称为远程语音交互,至少一米以上;指令可组合,比如:看一部周星驰的电影,评分8分以上。 解放双手和双眼,更安全:如车载系统的语音点播和语音导航场景(不可能一般用手开车,一边用手点播音乐);比如医疗场景,医生可以一边动手术,一边口语记录病.

    2022年5月9日
  • java项目管理软件系统springboot+mysql+layui+mybatis-plus进销存源码

    java项目管理软件系统springboot+mysql+layui+mybatis-plus进销存源码进销存软件源代码,编程语言为java注意事项(1)用户名:admin;密码:123456。采用springboot+mysql+layui+mybatis-plus技术,用idea开发工具可直接打开!

    2022年5月31日
  • pdf拆分保留书签_pdf补丁

    pdf拆分保留书签_pdf补丁PDF补丁丁0.2.7.2版软件已经更新,请在博客首页(http://pdfpatcher.cnblogs.com)下载最新版。2010年6月11日更新功能介绍PDF补丁丁是一个用于修改PDF文件信息的工具。它具有以下功能:生成PDF文件:通过导入一批图片或已有PDF文件,生成包含图片及已有PDF文件指定页面范围的PDF文件。在生成文件时还可挂上书签。用此功能…

    2022年11月1日
  • Pycharm专业版2016-2022历史版本官方下载地址「建议收藏」

    Pycharm专业版2016-2022历史版本官方下载地址「建议收藏」pycharm历史版本官方下载地址

    2022年10月26日
  • python读取excel单元格内容_python如何读取文件夹下的所有文件

    python读取excel单元格内容_python如何读取文件夹下的所有文件1.使用python内建的open()方法读取文本相对路径:example/ex2.txt,文件内容如下所示:测试内容,路径和内容,大家可根据自己心情设置。使用open()方法读取:print(‘—-使用python自带的open()读取文件—–‘)path=r’example/ex2.txt’frame=open(path)print(frame.readlines())此时,执行结果报错如下:我猜测open()方法的…

    2022年10月2日
  • PAT乙级题解

    PAT乙级题解题号C/C++B1001

    2022年5月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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