当前位置: 首页 > news >正文

MySQL 8.0 窗口函数全面解析与实例

一、窗口函数概述

窗口函数(Window Functions)是 MySQL 8.0 引入的重要特性之一,允许在 不破坏原始数据行 的情况下,对数据进行 复杂分析(如排名、累计、滑动窗口计算等)。与传统的 GROUP BY 聚合不同,窗口函数通过 OVER() 子句定义计算范围,保留了每行的独立性。


二、窗口函数核心语法
<窗口函数> ([参数]) OVER ([PARTITION BY <分区列>] [ORDER BY <排序列>][ROWS/RANGE <窗口帧定义>]
)
  • PARTITION BY:将数据划分为多个分区,每个分区独立计算。
  • ORDER BY:定义窗口内数据的排序规则。
  • ROWS/RANGE:定义窗口帧(计算范围),例如 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW(从分区开头到当前行)。

三、窗口函数分类与实例
1. 排名函数

用于为分区内数据分配行号或排名。

函数功能描述
ROW_NUMBER()为每行分配唯一序号(从1开始)。
RANK()相同值排名相同,后续排名跳跃。
DENSE_RANK()相同值排名相同,后续排名连续。
NTILE(n)将分区内行平均分成 n 组,分配组号。

实例 1:部门内员工薪资排名

SELECT department, name, salary,ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DE

相关文章:

  • 关于项目多语言化任务的概述
  • 【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
  • CppCon 2015 学习:Beyond Sanitizers
  • 2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
  • Mysql的B-树和B+树的区别总结
  • stripe支付测试,ngrok无法使用?免费vscode端口转发,轻松简单!
  • 【输入URL到页面展示】
  • OurBMC技术委员会2025年二季度例会顺利召开
  • Android 项目的核心配置文件
  • 解决fastadmin、uniapp打包上线H5项目路由冲突问题
  • 【Linux】centos软件安装
  • macOS 连接 Docker 运行 postgres,使用navicat添加并关联数据库
  • OpenAI API 流式传输
  • 2.0 阅读方法论与知识总结
  • 软件功能鉴定需要注意哪些内容?
  • Windows GDI 对象泄漏排查实战
  • Vue 生命周期全解析:从创建到销毁的完整旅程
  • [网页五子棋][匹配模块]实现胜负判定,处理玩家掉线
  • 测试面试题 手机号验证码登录测试用例
  • 论文导读 | 动态图存储与事务处理系统总结
  • 免费网站制作/有免费推广平台
  • 电子商务主要是干嘛的/平原县网站seo优化排名
  • 厦门网站推广步骤机构/新闻热点
  • 校园网站建设提升/论坛推广网站
  • 淄博网站建设 优易科技/制作一个网站大概需要多少钱
  • 工商局网站怎么做身份确认/最好的网络营销软件