当前位置: 首页 > 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
http://www.lqws.cn/news/138637.html

相关文章:

  • Day44 Python打卡训练营
  • 陈伟霆电视剧《九门》开机 续写传奇热血新篇
  • Apache APISIX
  • DeviceNET从站转EtherNET/IP主站在盐化工行业的创新应用
  • 计算机操作系统知识点总结②
  • APx500录制波形
  • 代码训练LeetCode(22)研究者H指数
  • Python 区块链开发实战:从零到一构建智能合约
  • python 学习笔记
  • Linux I2C 子系统全解:结构、机制与工程实战
  • 区块链架构深度解析:从 Genesis Block 到 Layer 2
  • 数据库表中「不是 null」的含义
  • Numpy——通用函数、向量化、基础的统计计算
  • Elasticsearch中的地理空间(Geo)数据类型介绍
  • 《小明的一站式套餐服务平台》
  • 【网络安全】fastjson原生链分析
  • 制造业数字化转型解决方案及应用
  • 在Mathematica中实现Newton-Raphson迭代的收敛时间算法
  • gitlab rss订阅失败
  • video-audio-extractor:视频转换为音频
  • 什么是分布式锁?几种分布式锁分别是怎么实现的?
  • 优化技巧--滑动窗口
  • Golang——7、包与接口详解
  • c++第6天--运算符重载
  • return this;返回的是谁
  • 散货拼柜业务:多货主财务结算如何高效管理?
  • machine_env_loader must have been assigned before creating ssh child instance
  • 开源模型应用落地-OpenAI Agents SDK-集成Qwen3-8B-function_tool(二)
  • 【HarmonyOS 5】游戏开发教程
  • C++初阶 | 模板