🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
什么是窗口函数
相信很多人都比较熟悉 SQL 聚合函数的语法,比如 count(), sum(), max()等,
窗口函数类似聚合函数,不同的是窗口函数不改变原有的行。
窗口函数是数据分析和数据开发必备的技能。
基本语法:<窗口函数> over (partition by <用于分组的列名> order by <用于排序的列名>)
可能这样的解释还是不明了,没事,往后看,一会你就明白了。
案例
现在先模拟几条数据,假如目前有学生成绩表(stu_scores)如下:
class(班级) | id(学号) | score(成绩) |
---|---|---|
1 | 004 | 71 |
2 | 003 | 98 |
1 | 002 | 98 |
2 | 001 | 80 |
2 | 005 | 77 |
1 | 006 | 80 |
语句一:
select *,
rank①() over②(partition by③ class order by④ score desc) ranking
from stu_scores;
得到的结果如下:
class(班级) | id(学号) | score(成绩) | ranking |
---|---|---|---|
1 | 002 | 98 | 1 |
1 | 006 | 80 | 2 |
1 | 004 | 71 | 3 |
2 | 003 | 98 | 1 |
2 | 001 | 80 | 2 |
2 | 005 | 77 | 3 |
接下来解释一下这段 SQL,这条 SQL 的目的是求每个班级内的成绩排名
① rank() 排序的函数