温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何快速了解SQL窗口函数

发布时间:2021-10-22 09:55:36 阅读:183 作者:iii 栏目:数据库
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要介绍“如何快速了解SQL窗口函数”,在日常操作中,相信很多人在如何快速了解SQL窗口函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何快速了解SQL窗口函数”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

什么是窗口函数/分析函数?

窗口函数是类似于可以返回聚合值的函数,例如SUM(),COUNT(),MAX()。

但是窗口函数又与普通的聚合函数不同,它不会对结果进行分组,使得输出中的行数与输入中的行数相同。

如何快速了解SQL窗口函数

窗口函数剖析

一个窗口函数大概看起来是这样:

SELECT SUM() OVER(PARTITION BY ___ ORDER BY___) FROM Table

这里有3点需要牢记:

1. 聚合功能:在上述例子中,我们用了SUM(),但是你也可以用COUNT(), AVG()之类的计算功能

2. PARTITION  BY:你只需将它看成GROUP BY子句,但是在窗口函数中,你要写PARTITION BY

3. ORDER BY:ORDER BY和普通查询语句中的ORDER  BY没什么不同。注意,输出的顺序要仔细考虑

如何快速了解SQL窗口函数

示例:集合函数VS窗口函数

假设我们有如下这个表格:

如何快速了解SQL窗口函数

如果要按性别获取平均GPA,可以使用聚合函数并运行以下查询:

SELECT Gender, AVG(GPA) as avg_gpa FROM students GROUP BY Gender

结果如下:

如何快速了解SQL窗口函数

下一步是关键!

现在我们想得到如下结果:

如何快速了解SQL窗口函数

我们当然可以用我们刚刚提到的聚合函数,然后再将结果join到初始表,但这需要两个步骤。

但如果我们使用窗口函数,我们则可以一步到位,并得到相同的结果:

SELECT *,   AVG(GPA) OVER (PARTITION BY Gender) as avg_gpa FROM table

通过上面的查询,我们正在按性别对数据进行划分,并计算每种性别的平均GPA。然后,它将创建一个称为avg_gpa的新列,并为每行附加关联的平均GPA。

窗口函数的优点

如何快速了解SQL窗口函数

简单

窗口函数更易于使用。在上面的示例中,与使用聚合函数然后合并结果相比,使用窗口函数仅需要多一行就可以获得所需要的结果。

快速

这一点与上一点相关,使用窗口函数比使用替代方法要快得多。当你处理成百上千个千兆字节的数据时,这非常有用。

多功能

性最重要的是,窗口函数具有多种功能,本文并没有提及这个功能,比如,包括添加移动平均线,添加行号和滞后数据,等等。

到此,关于“如何快速了解SQL窗口函数”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://mp.weixin.qq.com/s?__biz=MzUwOTg1OTU5MA==&mid=2247507051&idx=3&sn=4c6c3f80f5e23a2fac782bd54ff08d37&chksm=f9095e02ce7ed7148cc11039dad610c0a0e7fc63920029c3bc4d2954fe0db70a88e657a03092&mpshare=1&

sql
AI

开发者交流群×