| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MySQL窗口函数——分组排序函数:number_rank(),rank(),dense_rank() -> 正文阅读 |
|
[大数据]MySQL窗口函数——分组排序函数:number_rank(),rank(),dense_rank() |
目录 🎲概念MySQL 8.0 新增窗口函数,窗口函数又被称为开窗函数,与Oracle 窗口函数类似,属于MySQL的一大特点. 窗口聚合函数在行记录上计算某个字段的结果时,可将窗口范围内的数据输入到聚合函数中,并不改变行数。 当你实际操作之后,你会发现窗口函数真的是非常nice! 那么窗口函数到底有哪些呢?这些窗口函数的功能到底有多么的强大呢?让我们带着这样的疑问去学习吧! 另外还有开窗聚合函数: SUM,AVG,MIN,MAX 🎯语法结构
🎬序号函数序号函数有三个:ROW_NUMBER()、RANK()、DENSE_RANK(),可以用来实现分组排序,并添加序号。 这三种排序方式,我们需要根据自己的业务需求进行选择
下面我们通过实际的案例操作来理解这三个方法,到底有什么异同 🎨准备数据
🎸ROW_NUMBER() 直接排序
row_number() :将那些数值相同也按照顺序排序了,但是有时候我们需要将这些相同的放在一起排名,这个时候我们这个方法就显得不够好了。 over:里面第一个参数是,按照什么分组;第二个是按照什么排序,升序还是降序 💄rank()相同的并列排序
?只需要将上述的函数名,改成rank即可,在这里可以很好的避免之前的情况发生,将一样的数值放在了一起,也就是并列排名,在现实中具有很多的推广。 那么有时候,我们虽然想并列排名,但是又不想中间空排名次序,也就是连续的排名,那么此时我们又该如何去做呢? 🍤dense_rannk()连续并列的排序
?在现实的场景当中,我们可以根据自己的场景去选择我们的排序函数,当然前提是你必须要基础它的语法: number_rank()|rank()| dense_rank() over(partition by 按照什么字段分组 order by 按照什么字段排序 desc)as 重命名字段 👕经典面试题👚取出排名前三的数据(Top N)相信大家在面试数据库的时候,经常被HR问到,MySQL实现取出用户的前三个值,那么有些小伙伴直接脱口而出,先排序,然后limit 3 不就可以了吗?可能面试官会笑笑,你考虑过数值一样的情况了吗? 这个时候我们就可以使用窗口函数里面的dense_rank()函数,也不需要你去写各种存储函数去实现,直接一行代码实现top N
🏆扩展—全局操作不指定分组字段也就是不指定partition by 后面的字段名,也就是可以直接省略
???每文一语
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:15:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |