MySQL 8.0之窗口函数

本文介绍了MySQL 8.0中的窗口函数,包括rank()、dense_rank()和row_number()等专用窗口函数及其使用方法,以及聚合函数在窗口函数中的应用。这些函数允许在每个分组内进行排序,而不会改变原始数据的行数,提供了一种更高效的数据分析方式。
摘要由CSDN通过智能技术生成

简介

原文链接:https://zhuanlan.zhihu.com/p/92654574

此部分官方文档:https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html

注意:从版本8.0开始,MySQL支持窗口函数。窗口函数允许您以新的,更简单的方式解决查询问题,并具有更好的性能。

窗口函数的基本语法如下:

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

<窗口函数>的位置,可以放以下两种函数:

  • 1) 专用窗口函数,包括后面要讲到的rank, dense_rank, row_number等专用窗口函数。
  • 2) 聚合函数,如sum. avg, count, max, min等

如何使用?

1. rank() 专用窗口函数

例如下图,是班级表中的内容:
在这里插入图片描述
如果我们想在每个班级内按成绩排名,得到下面的结果:
在这里插入图片描述
以班级“1”为例,这个班级的成绩“95”排在第1位,这个班级的“83”排在第4位。上面这个结果确实按我们的要求在每个班级内,按成绩排名了。

得到上面结果的sql语句代码如下:

select *,
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值