⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

MySQL 窗口函数进阶

使用窗口函数实现排名、移动平均和分组内计算。 · 难度:入门 · +15XP

MySQL 窗口函数

窗口函数(Window Functions)在MySQL 8.0中引入,允许在不合并行的情况下对查询结果集进行分组计算。常用窗口函数包括ROW_NUMBER、RANK、SUM、AVG等。

基本语法

函数名() OVER (
    [PARTITION BY 列] [ORDER BY 列] [ROWS/RANGE 窗口范围]
)

常用函数

函数用途
ROW_NUMBER()为每一行分配唯一序号
RANK()排名,并列时跳过后续序号
DENSE_RANK()排名,并列时不跳过序号
SUM()累计求和
LAG()/LEAD()访问前/后行数据

示例:部门内薪资排名

SELECT name, department, salary,
       RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rank_in_dept
FROM employees;

示例:移动平均

SELECT date, amount,
       AVG(amount) OVER (ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_avg
FROM sales;

练习提示

创建员工表,计算每个部门的薪资排名和累计薪资,尝试使用LAG函数查看前后员工薪资差异。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 68 篇
0 完成
🔥 0