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

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.xdnf.cn/news/11898.html

相关文章:

  • 力提示(force prompting)的新方法
  • leetcode1443. 收集树上所有苹果的最少时间-medium
  • Oracle数据库笔记
  • Windows下运行Redis并设置为开机自启的服务
  • @Prometheus动态配置管理-ConsulConfd
  • ArcGIS Pro 3.4 二次开发 - 地图探索
  • unix/linux,sudo,其基本概念、定义、性质、定理
  • 705SJBH超市库存管理系统文献综述
  • 关于面试找工作的总结(四)
  • 【无标题】图着色问题的革命性解决方案:拓扑膨胀-收缩对偶理论
  • 【黄金评论】美元走强压制金价:基于NLP政策因子与ARIMA-GARCH的联动效应解析
  • react+taro 开发第五个小程序,解决拼音的学习
  • 如果安装并使用RustDesk
  • TDengine 在电力行业如何使用 AI ?
  • win32com.client模块 —— Python实现COM自动化控制与数据交互
  • Linux系统iptables防火墙实验拓补
  • 77、完全植入式脑机接口神经数据编码解码数据处理等问题答疑[嘿!快看,馒头老师在这里蹲着!]
  • 详解Jenkins Pipeline 中git 命令的使用方法
  • Kubernetes 网络方案:Flannel 插件全解析
  • 常用的录音芯片型号有哪些?
  • 高并发区块链系统实战:从架构设计到性能优化
  • NFS的基本配置
  • Java中的多态
  • Java SpringBoot 调用大模型 AI 构建智能应用实战指南
  • 在树莓派上添加音频输入设备的几种方法
  • Rust学习(1)
  • 采用 Docker GPU 部署的 Ubuntu 或者 windows 桌面环境
  • Elasticsearch中的刷新(Refresh)和刷新间隔介绍
  • 【Zephyr 系列 7】BLE 数据透传系统设计与实现:双向通信、缓冲区与状态同步全解析
  • c++第6天--运算符重载