我的编程空间,编程开发者的网络收藏夹
学习永远不晚

4分钟了解什么是SQL窗口函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

4分钟了解什么是SQL窗口函数

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

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

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

[[374457]]

 

窗口函数剖析

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

 

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

这里有3点需要牢记:

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

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

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

 

 

[[374458]]

 

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

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

 

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

 

 

  1. SELECT Gender, AVG(GPA) as avg_gpa 
  2. FROM students 
  3. GROUP BY Gender 

结果如下:

 

下一步是关键!

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

 

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

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

 

  1. SELECT *, 
  2.   AVG(GPA) OVER (PARTITION BY Gender) as avg_gpa 
  3. FROM table 

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

窗口函数的优点

 

 

 

简单

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

快速

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

多功能

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

结语

读到这里,你大概对窗口函数有了初步认识。希望本文提及的例子对你理解窗口函数有帮助。总而言之,希望你的SQL可以越来越厉害!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

4分钟了解什么是SQL窗口函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

4分钟了解什么是SQL窗口函数

你也许很熟悉SQL的简单查询,比如使用SELECT FROM WHERE GROUP BY这样的基础语句,但是如果你想进一步提升自己的SQL技能,你不能不知道窗口函数(Window Function),又被叫做分析函数(Analytics

SQL窗口函数是什么

这篇文章主要介绍了SQL窗口函数是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。窗口函数形如:表达式 OVER (PARTITION BY 分组字段 ORDER BY 排
2023-06-29

什么是SQL窗口函数

本篇内容主要讲解“什么是SQL窗口函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是SQL窗口函数”吧!窗口函数(Window Function) 是 SQL2003 标准中定义的一项新特
2023-06-15

SQL窗口函数是什么?涨见识了!

本文首先介绍窗口函数的定义及基本语法,之后将介绍在 DBMS 和大数据系统中是如何实现高效计算窗口函数的,包括窗口函数的优化、执行以及并行执行。
SQLJava函数2024-12-03

Spark SQL中的窗口函数是什么

在Spark SQL中,窗口函数是一种特殊的函数,可以用来在特定的窗口或分区中计算结果。窗口函数通常用于处理类似排名、聚合、排序等需要对数据进行分组和计算的场景。通过使用窗口函数,可以在不影响原始数据排序或分组的情况下,对数据进行更灵活的处
Spark SQL中的窗口函数是什么
2024-04-09

MySQL8.0中的窗口函数是什么

这篇文章给大家分享的是有关MySQL8.0中的窗口函数是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在以前的MySQL版本中是没有窗口函数的,直到MySQL8.0才引入了窗口函数。窗口函数是对查询中的每一条
2023-06-29

MySQL 窗口函数是什么,有这么好用

LAG() 函数用于在查询结果中访问当前行之前的行的数据。它允许您检索前一行的值,并将其与当前行的值进行比较或计算差异。LAG()函数对于处理时间序列数据或比较相邻行的值非常有用。

oracle窗口函数的执行流程是什么

Oracle窗口函数的执行流程大致如下:首先,确定窗口函数所应用的数据集,即确定数据集的排序顺序和分区方式。接着,对数据集进行分组,将数据集按照窗口函数的分区方式进行分组。在每个分组内,按照窗口函数的排序规则对数据进行排序。对每个分组内的数
oracle窗口函数的执行流程是什么
2024-04-09

oracle窗口函数的使用方法是什么

在Oracle数据库中,窗口函数是一种用于执行聚合、排序、排名等操作的特殊函数。窗口函数不会合并行,而是在查询结果的每一行上执行计算。使用窗口函数可以实现类似于在查询结果集中进行子查询并计算结果的功能,但是效率更高。窗口函数的使用方法如下
oracle窗口函数的使用方法是什么
2024-04-09

sql中百分比函数是什么

sql 百分比函数用于计算输入值相对于另一个值的百分比,利用 percentage 函数:numerator:分子值denominator:分母值语法:percentage(numerator, denominator)结果介于 0 到 1
sql中百分比函数是什么
2024-05-10

1分钟了解什么是SQL聚合函数,一看就懂,一学就会!(AVG(column_name)COUNT(column_name)MAX(column_name)MIN(column_name)SUM(col

聚集函数:SQL基本函数,聚集函数对一组值执行计算,并返回单个值,也被称为组函数。聚集函数经常与SELECT语句的GROUP BY子句的HAVING一同使用。但是不可用于WHERE语句中,因为WHERE是对逐条的行记录进行筛选。定义:聚集函数对一组值执行计算并
1分钟了解什么是SQL聚合函数,一看就懂,一学就会!(AVG(column_name)COUNT(column_name)MAX(column_name)MIN(column_name)SUM(col
2021-07-03

一分钟了解 RSA 算法到底是个什么鬼?

本文将概述 RSA 算法的流程,并用一个简单示例进行阐述,最后讲解了一种意想不到的“旁门左道”的破解方式。
RSA算法加密2024-12-02

牛津大学科普,几分钟带你了解:什么是机器学习

如今机器学习已经深入到我们生活的方方面面,它就在我们身边,在我们的手机上,社交网络上...但它是如何工作的呢?在本文中,牛津大学针对机器学习进行了浅显易懂的科普。

randint函数用不了的原因及解决方法是什么

randint函数用不了的原因可能是因为没有正确导入random模块。要使用randint函数,需要先导入random模块。解决方法是在代码中添加以下导入语句:```pythonimport random```然后就可以使用random模块
2023-08-11

sql数据库启动不了的原因及解决方法是什么

SQL数据库启动不了的原因及解决方法可能有很多,以下是一些常见的原因及解决方法:1. 数据库服务未启动:检查数据库服务是否已启动,可以在命令行中输入"services.msc"查看并启动数据库服务。2. 数据库配置错误:检查数据库配置文件是
2023-09-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录