前言
MySQL 8.0版本推出窗口函数(Window Functions)。
窗口函数为我们提供了一种新的方法来处理查询结果,可以在不使用GROUP BY子句的情况下进行聚合计算,极大地提高了SQL查询的灵活性和表现力。
窗口函数
主要分为3类,分别是聚合窗口函数、排序窗口函数、偏移窗口函数
聚合窗口函数: avg、sum、count、max、min等;
排序窗口函数:rank、dense_rank、row_number;
偏移窗口函数:lag、lead
使用语法如下:
语法
使用场景
在不改变查询结果集的情况下,对结果集中的行进行排序、排名、累计计算等操作。
实例
假设我们有一个销售数据表,其中包含了每个销售员的销售额和销售日期。现在我们想要计算每个销售员在每个月的销售额总和
使用PARTITION BY:
使用GROUP BY:
总结
MySQL 8.0中引入的窗口函数不仅提高了SQL查询的功能和表现力,还使得在SQL中进行更灵活的数据分析和处理成为可能。
通过窗口函数,我们可以更方便地对数据进行排序、排名、累计计算等操作,从而更好地满足不同的数据分析需求。