MySQL 8.0 新特性

第13篇 窗口函数基本概念

MySQL 8.0 支持窗口函数(Window Function),也称分析函数。窗口函数与分组聚合函数类似,但是每一行数据都生成一个结果。

聚合窗口函数:SUM / AVG / COUNT / MAX / MIN 等等。

select year,country,product,prifit,
sum(profit) OVER (partition by country) as country_profit
from sales
order by country, year, product, profit;

第14篇 专用窗口函数

ROW_NUMBER() / RANK() / DENSE_RANK() / PERCENT_RANK()

FIRST_VALUE() / LAST_VALUE() / LEAD() / LAG()

CUME_DIST() / NTH_VALUE() / NTILE()

第15篇 窗口函数中的窗口定义

window_function(expr)
	OVER (
  	PARTITION BY ...
    ORDER BY ...
    frame_clause...
  )
 
-- CURRENT ROW
-- M PRECEDING 当前行到前 M 行
-- N FOLLOWING 当前行到后 N 行
-- UNBOUNDED PRECEDING 当前行到第一行
-- UNBOUNDED FOLLOWING 当前行到最后一行