SQL技能 - 窗口函数

news2024/11/25 21:34:30

SQL技能 - 窗口函数

  • 1. 排序函数
    • 1.1. 不分组排序
    • 1.2. 分组排序
  • 2. 聚合函数实现滑动窗口计算
    • 2.1. 常用聚合函数
    • 2.2. 滑动行范围的常用表达
    • 2.3. 示例
  • 3. lag、lead函数求增长率(同比、环比)

窗口函数表达式:
function(arg) OVER ([PARTITION BY expression][ORDER BY expression [ASC|DESC]][frame])

1. 排序函数

排序函数示例备注
row_number()1,2,3…序号不重复,序号连续
rank()1,2,2,4…序号可以重复,序号不连续
dense_rank()1,2,2,3…序号可以重复,序号连续

1.1. 不分组排序

在这里插入图片描述

select 
score,
dense_rank() over(order by score desc) as `rank`
from scores

1.2. 分组排序

在这里插入图片描述
在这里插入图片描述

select c.department,c.employee,c.salary
from 
(select
b.name as department,
a.name as employee,
a.salary,
rank() over(partition by departmentid order by salary desc) as salary_rank
from employee a
inner join department b on a.departmentid = b.departmentid) c where c.salary_rank = 1

2. 聚合函数实现滑动窗口计算

2.1. 常用聚合函数

聚合函数说明
COUNT(col)返回所有非空值的个数
AVG(col)返回平均值
SUM(col)返回总和
MAX(col)返回最大值
MIN(col)返回最小值
FIRST(col)返回第一个记录的值
LAST(col)返回最后一个记录的值

2.2. 滑动行范围的常用表达

{RANGE|ROWS} frame_start
{RANGE|ROWS} between frame_start AND frame_end

rows模式:按物理行来进行划分
range模式:按数值逻辑来进行划分

frame_start / frame_end的五种表达说明
UNBOUNDED PRECEDING从开始行
expression PRECEDING往前推n行(只适用于rows模式)
CURRENT ROW当前行
expression FOLLOWING往后推n行(只适用于rows模式)
UNBOUNDED FOLLOWING到结束行

默认:BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

2.3. 示例

在这里插入图片描述
在这里插入图片描述

3. lag、lead函数求增长率(同比、环比)

同比就是比去年同期,环比就是这个月比上个月,单位不一定是月,可以是任何时间单位。
同比计算方式:同比增长率 = (本期数 - 同期数) ÷ 同期数 * 100%
环比计算方式:环比增长速度 = (本期数 - 上期数) ÷ 上期数 * 100%

前后函数说明
lead(expression,n)返回当前行的后n行
lag(expression,n)返回当前行的前n行

求环比:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/401255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K8s kubectl 高效使用技巧,搞定批处理!

1.kubectl用法详解 1. kubectl语法 kubectl [command] [Type] [NAME] [flags] command: 子命令,用于操作kubernetes集群资源对象的命令,例如:create, delete, describe, get, apply等等 TYPE: 资源对象的类型,区分大小写&#…

可视化组件届的仙女‖蝴蝶结图、玫瑰环图、小提琴图

在上一篇内容中为大家介绍了几个堪称可视化组件届吴彦祖的高级可视化图表。既然帅哥有了,怎么能少得了美女呢?今天就为大家介绍几个可视化组件届的“美女姐姐”,说一句是组件届的刘亦菲不为过。蝴蝶结图蝴蝶结图因其形似蝴蝶结而得名&#xf…

SDL—安全培训

0x00 前言 软件开发团队的所有成员都必须接受适当的培训,了解安全基础知识以及安全和隐私方面的最新趋势。直接参与软件程序开发的技术角色人员(开发人员、测试人员和程序经理)每年必须参加至少一门特有的安全培训课程。 这个是微软针对安全培…

蓝牙耳机哪个戴的最舒服?久戴不累的蓝牙耳机推荐

在喧嚣的时代中,快节奏和疲惫充斥着我们的生活,于是耳机成为了人们必不可少的东西,无论是闲暇时亦或是正处在工作时,都会将它戴上,出门在外戴耳机变成了常态,所以小编就整理了一期久戴不累的蓝牙耳机。 No…

【专项】112. 路径总和

112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 …

深度学习部署笔记(八): CUDA RunTime API-2.1Hello CUDA

1. CUDA Driver API和CUDA Runtime API CUDA Driver API和CUDA Runtime API都是用于访问GPU的API。它们之间的区别在于它们的功能和使用方法不同。 CUDA Driver API是一个底层的API,它提供了对GPU硬件的底层访问,以及GPU硬件的直接控制。使用Driver AP…

聊天机器人分析,它值不值得做?

如今,聊天机器人热度持续走高。在您的网站或社交媒体上设置它们比以往任何时候都容易。然而,相当多的公司也犯了同样的错误。他们非常热衷于尝试聊天机器人,但随后是时候提出一些重要问题了。我们的聊天机器人工作了吗?他们表现如…

Flutter面试题解析-GridView详解与应用

一、前言Flutter 作为时下最流行的技术之一,凭借其出色的性能以及抹平多端的差异优势,早已引起大批技术爱好者的关注,甚至一些 闲鱼 , 美团 , 腾讯 等大公司均已投入生产使用。虽然目前其生态还没有完全成熟&#xff0…

CAD如何绘制A0/A1/A2/A3/A4图框?

在CAD制图时,设计师一般会使用企业的定制图框模板或者个人的特色图框模板,让设计方案更加标准化、规范化。对于新人设计师而言,完成CAD制图已经非常头疼了,图框的绘制更是手忙脚乱。那么是否有更加高效的方式来完成A0、A1、A2、A3…

Windows中UWP、WPF和Windows窗体的区别

Windows 中开发应用(或者可以说客户端)有三种方法: UWP(Universal Windows Platform)、WPF(Windows Presentation Foundation)和 Windows 窗体(Win Forms)。这三种方法在…

【word】插入代码排版

迟早会转战latex highlight不好用 highlight网站 http://codeinword.com/ 类似这样的网站还有很多。主要问题就是,复制的代码带有不容易编辑的行号以及前面绿色的标识 而且放到word里也不容易调整。还有word会自动默认格式,不方便加小图名之类的问题 …

【2023年的就业形势依旧严峻】

2023年口罩放开的第一年,也是第一个招聘会,挤满了求职者和用人单位,大多数都是想着重新开始,抓住金三银四的好时机,找到心仪的工作和符合岗位要求的人才,一起整装出发。我们理想的状态是,经济已…

【本地网站上线】ubuntu搭建web站点,并内网穿透发布公网访问

【本地网站上线】ubuntu搭建web站点,并内网穿透发布公网访问前言1. 本地环境服务搭建2. 局域网测试访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名4.3 测试访问公网固定二级子…

Python 分支结构

Python 分支结构 应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分&#x…

【项目实战】SpringBoot整合Protobuf,实现基于RestTemplate的模拟客户端与服务端的远程调用

一、背景说明 项目中使用到了Protobuf&#xff0c;但是因为不知道怎么使用它&#xff0c;所以看起来很高大上&#xff0c;现在写一个简单的Demo来实现基于RestTemplate的模拟客户端与服务端的远程调用&#xff01; 二、实操代码 2.1 定义依赖POM文件 <dependencies>&…

花菁染料IR:IR808 Maleimide,IR 808 Mal,IR-808马来酰亚胺具有光稳定性好

【中文名称】IR-808马来酰亚胺【英文名称】 IR-808 Maleimide&#xff0c;IR-808 Mal【IR-808结 构 式】【CAS号】N/A【基团部分】IR-808【纯度标准】95%【包装规格】10mg&#xff0c;25mg&#xff0c;50mg&#xff0c;可以提供核磁图谱及相关质量证明图谱【是否接受定制】是【…

自动组策略(GPO)备份工具

Active Directory&#xff08;AD&#xff09;中的组策略对象&#xff08;GPO&#xff09;在控制用户和计算机账户的工作环境中起着至关重要的作用。单个GPO可以包含数百或数千个设置。它还可以链接到OU或域&#xff0c;从而控制位于其中的用户或计算机。当这样一个功能强大的AD…

C++:异常

在学习异常之前&#xff0c;来简单总结一下传统的处理错误的方式&#xff1a; 1. 终止程序&#xff0c;如assert&#xff0c;缺陷&#xff1a;用户难以接受。如发生内存错误&#xff0c;除0错误时就会终止程序。 2. 返回错误码&#xff0c;缺陷&#xff1a;需要程序员自己去查找…

利用蜜罐捕捉攻击实验(31)

预备知识 1、蜜罐的含义和作用 蜜罐(Honeypot)是一种在互联网上运行的计算机系统。它是专门为吸引并诱骗那些试图非法闯入他人计算机系统的人(如电脑黑客)而设计的&#xff0c;蜜罐系统是一个包含漏洞的诱骗系统&#xff0c;它通过模拟一个或多个易受攻击的主机&#xff…

数据分析:基于K-近邻(KNN)对Pima人糖尿病预测分析

数据分析&#xff1a;基于K-近邻(KNN)对Pima人糖尿病预测分析 作者&#xff1a;AOAIYI 作者简介&#xff1a;Python领域新星作者、多项比赛获奖者&#xff1a;AOAIYI首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x…