Skip to content

分析函数窗口

版本要求

  • MySQL 8.0+ 支持窗口函数,与标准 SQL 窗口语义接近。

典型用法

sql
SELECT
  dept_id,
  emp_id,
  salary,
  RANK() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS rk,
  SUM(salary) OVER (PARTITION BY dept_id) AS dept_salary_sum
FROM employees;

常见函数

  • ROW_NUMBERRANKDENSE_RANK
  • LAGLEADFIRST_VALUENTH_VALUE
  • 聚合开窗:SUM(...) OVER (...)

性能

大结果集上窗口函数可能 排序成本高,必要时先缩小子集或加合适 WHERE