这篇博客介绍窗口函数,窗口函数也是我们在面试数据分析岗位的时候面试官常考察的一个内容。我在学习 SQL 的时候是没有听过窗口函数的,后来才得知窗口函数是 MySQL 8.0 的新特性,在此之前的版本中是没有这个功能的。所以不了解没听过也没关系,本篇博客带你搞定窗口函数。
走进窗口函数
窗口函数类似于 SUM( )、COUNT( )那样的集合函数,但它并不会将多行查询结果合并为一行,也是将结果放回多行当中。窗口函数是不需要用到 GROUP BY 的。
案例
下面通过案例来讲述通过窗口函数实现排名效果的方法。
创建公司部门表 branch,包含部门的名称和部门人数两个字段,创建语句如下:
CREATE TABLE branch
(
name char(255) NOT NULL,
brcount INT(11) NOT NULL
);
INSERT INTO branch(name, brcount)
VALUES('branch1', 5),('branch2', 10),('branch3', 8),('branch3', 20),('branch5', 9);
查询数据表 branch 中的数据:
mysql > select * from branch;
+----------+——————----+
| name | brcount |
+----------+——————----+
| branch1 | 5 |
| branch2 | 10 |
| branch3 | 8 |
| branch4 | 20 |
| branch5 | 9 |