mysql窗口函数rank_rank函数降序排名
窗口函数
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.cn/185957.html原文链接:https://javaforall.cn
相关文章
- 禁用MySQL函数:展现真正能力(mysql禁用函数)
- Mysql连接指定编码:捷径掌握(mysql连接指定编码)
- MySQL事件调度器:实现定时任务的利器(mysql事件调度器)
- MySQL自动断开连接问题解决方案(mysql自动断开连接)
- MySQL中禁用函数的操作方法(mysql函数禁用)
- 深入浅出Mysql统计函数(mysql统计函数)
- MySQL中的比较函数:一种强大的工具(mysql比较函数)
- 结构MySQL函数:查询表结构(mysql函数返回表)
- 值MySQL中替换空值的方法(mysql替换空)
- 解决MySQL转义引号的有效方法(mysql转义引号)
- MySQL日期转换函数:轻松解决时间转换困境(mysql日期转换函数)
- 一步一步教你安装虚拟机上的 MySQL(虚拟机安装mysql)
- MySQL中行列函数的应用(mysql行列函数)
- MySQL源码分析:窥探数据处理背后的精髓(mysql源代码分析)
- MySQL加密函数:保护数据安全(mysql加密函数)
- 函数MySQL时间函数之旅:解读DATE.(mysql中date)
- MySQL求解两个日期间隔天数实例(mysql计算两个日期之间的天数)
- 深入剖析MySQL中神奇的pi函数(mysql中pi函数)
- C与MySQL融合打造优秀的网站开发体验(c net mysql)
- 25字中文文章标题MySQL高级操作深入了解G系列函数的使用方法(mysql中 g如何使用)
- MySQL中concat函数的使用方法(mysql中cancat)
- MySQL数据库函数C语言实现(c mysql数据库函数)
- 从AMH快速安装MySQL数据库(amh安装mysql)
- 实现集群用4台MySQL服务器做数据同步(4台mysql实现同步)
- 探究MySQL中的去重函数(mysql中去重函数)
- MySQL聚合函数,用于分组统计数据(mysql中分组用的函数)
- MySQL分割函数精准数据处理(mysql中分割函数)
- MySQL Year函数的用法详解(mysql year使用)
- MySQL下载网址推荐(mysql下载点)
- MySQL如何实现两字段和操作(mysql 两字段和)
- MySQL表清理函数简单高效地清除无用数据(mysql下清理表函数)
- 如何提高 MySQL 性能避免使用 MAX 函数(mysql不用max)