【Mysql数据库进阶01】窗口函数

窗口函数

  • 1 定义
  • 2 聚合窗口函数
    • 2.1 默认效果/累计效果
    • 2.2 前面两行+当前一行
    • 2.3 前面一行+当前一行+后面一行
  • 3 排名窗口函数
    • 3.1 排名函数
      • 3.1.1 排名函数案例
    • 3.2 累积分布
  • 4 取值窗口函数

1 定义

完整的窗口函数定义如下:

window_function([expression]) over(
	partition by
	order by
	frame_clause
)

其中window_function是窗口函数的名称,expression是可选择的分析对象
partition by包含分区类似group by
order by排序
frame_clause窗口大小

2 聚合窗口函数

在这里插入图片描述

2.1 默认效果/累计效果

rows between unbounded preceding and current row默认效果/累计效果
在这里插入图片描述
比如说可以用于查找短期之内(5天)累计转账超过100万元的账号

2.2 前面两行+当前一行

rows between 2 preceding and current row 前面两行+当前一行
在这里插入图片描述

2.3 前面一行+当前一行+后面一行

rows between 1 preceding and 1 following 前面一行+当前一行+后面一行
在这里插入图片描述

3 排名窗口函数

3.1 排名函数

排名窗口函数可以用来获取数据的分类排名。常见的排名窗口函数如下:
row_number()函数可以为分区中的每行数据分配一个序列号,序列号从1开始
rank 函数返回当前行在分区中的名次。如果存在名次相同的数据,后续的排名将会产生跳跃
dense_rank()函数返回当前行在分区中的名次。紧凑排名,不产生跳跃
percent_rank()函数以百分比的形式返回当前行在分区中的名次。如果存在名次相同的数据,后续的排名将会产生跳跃。
在这里插入图片描述
在这里插入图片描述
更方便的写法:

select emp_name,dept_id,salary,
	   row_number() over w rn,
	   rank() over w rk
from employee e 
window w as (partition by dept_id order by salary desc);

3.1.1 排名函数案例

牛客:对所有员工的薪水按照salary降序进行1-N的排名

select emp_no,salary,dense_rank() over (order by salary desc) t_rank
from salaries
order by t_rank asc,emp_no asc

学完窗口函数,仿佛发现新大陆

3.2 累积分布

cume dist()函数计算当前行在分区内的累积分布。
ntile()函数将分区内的数据分为N等份,并返回当前行所在的分片位置。
在这里插入图片描述

在这里插入图片描述


ntile()函数:
在这里插入图片描述

4 取值窗口函数

LAG函数可以返回窗口内当前行之前的第N行数据。
LEAD函数可以返回窗口内当前行之后的第N行数据。
FIRST_VALUE函数可以返回窗口内第一行数据。
LAST_VALUE函数可以返回窗口内最后一行数据
NTH_VALUE函数可以返回窗口内第N行数据。

我还没有系统性学习这个,先放在这
视频链接:【MySQL编程思想】第46节 同比环比及复合增长率

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络 -- 网络编程基础

一 学习准备 1.1 IP地址 在 前文中我们提到过: IP 是全球网络的基础,使用 IP 地址来标识公网环境下主机的唯一性,我们可以根据 目的IP地址 进行跨路由器的远端通信。 但是我们也提到了,通过 IP 地址,只能寻找到目标主机&#xff…

Transformer - Teacher Forcing

Transformer - Teacher Forcing flyfish 在训练过程中,将目标序列输入给解码器的方法称为(Teacher Forcing)。这个术语又代表什么意思呢? 这里的目标序列就是Ground Truth,也就是我们已知的正确答案 一句话就是我们…

系统思考—战略

“有策略而无战术,是取胜之最慢之道。有战术而无策略,是败亡之前的嘈杂。”—孙子 最近接触的中小企业,充分能感受到在经济下行的情况下,组织与战略是不可分割的两个方面。有时候公司组织出现了问题,可能是因为战略不…

高效便捷!解锁阿里云跨账号专线互联的全新实施方案

作者:小丫、琉璃 背景 为持续提升金融云环境的合规标准以及可用区内产品服务的性能和稳定性,阿里云将对杭州地域BCD三个金融云可用区进行基础设施架构升级与改造,对应可用区云产品将于 2024 年后停止服务,需要将业务迁移到新可用…

HarmonyOS实战开发-如何实现一个简单的健康生活应用

功能概述 成就页面展示用户可以获取的所有勋章,当用户满足一定的条件时,将点亮本页面对应的勋章,没有得到的成就勋章处于熄灭状态。共有六种勋章,当用户连续完成任务打卡3天、7天、30天、50天、73天、99天时,可以获得…

42-软件部署实战(下):IAM系统安全加固、水平扩缩容实战

IAM应用安全性加固 iam-apiserver、iam-authz-server、MariaDB、Redis和MongoDB这些服务,都提供了绑定监听网卡的功能。将服务绑定到内网网卡上。 我们也可以通过iptables来实现类似的功能,通过将安全问题统一收敛到iptables规则,可以使我…

利用FFmpeg 转换课程vtt 字幕到 srt字幕

字幕转换工具 经常学习udemy 视频课程的,可能知道,从网络下载的udemy 课程文件里面有时候字幕是vtt 格式的,有时候想导入到百度网盘里面,怎奈百度网盘,不支持vtt 字幕格式。有字幕的时候,会比较好多了。既可…

【python】super()函数的用法详解!

今天分享一个我在实际项目中用到过的super()函数,来说说该函数的主要功能是什么,简单来说,super()函数是用来做调用父类的一个方法。 super() 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题&#xf…

第十五届蓝桥杯复盘python大学A组——试题C 数字诗意

思路 数字可以分为 有诗意的数字可以写成 (ij)(j-i1)/2 ( i、j都是正整数 ) ij 、j-i1 的奇偶性不同(因为i、j都是正整数) 因此, 如果一个数是奇数就一定有诗意 eg.312 ,523,734,945… 原因:根据上述分…

什么是yum、以及yum源

文章目录 yum介绍软件安装/卸载生态 yum Linux中需要对对工具、指令、程序进行安装、检查、卸载等工作,需要使用到yum。 Linux中安装软件的方式 源代码安装rpm包直接安装yum安装 / apt-get安装 介绍 yum是Linux预装的一个指令,搜索、下载、安装对应…

2.6 类型安全配置属性

无论是Propertes配置还是YAML配置,最终都会被加载到Spring Environment中。 Spring提供了注解Value以及EnvironmentAware接口来将Spring Environment 中的数据注入到属性上,SpringBoot对此进一步提出了类型安全配置属性(Type-safeConfiguration Propert…

从计算机视觉到生命科学

人工智能技术的快速发展正在深刻影响和重塑我们的生活。作为AI领域的前沿方向,多模态大模型凭借其强大的跨域学习和推理能力,在众多行业和科学领域展现出广阔的应用前景。多模态AI指的是能够同时处理和整合文本、图像、音频、视频等不同模态数据的智能系统。这种融合不同信息源…

uni-admin中引入uni-cms的缺少schema及uni-media-library缺少云函数的问题

1. 在管理端运行提示一些表找不到,因为是uni-admin关联的uni-starter的服务空间,在uni-admin的uniCloud中没有内容,在uni-starter的uniCloud中也没有发现对应的表,后面干脆在云端找到对应的表之后新建了,然后再下载到本…

网工内推 | 14薪!安全服务工程师,上市公司,CISP认证优先

01 远江盛邦 招聘岗位:安全服务工程师 职责描述: 1、负责对客户网络、系统进行渗透测试,漏洞验证、安全评估和安全加固; 2、负责对监督单位的系统安全问题进行监督,并督察改进; 3、对监管单位的安全告警、…

机器人流量激增:恶意机器人活动升级与新型规避技术挑战企业安全防御

近日,根据Cyber News引用Thales Imperva Bad Bot发布的最新研究报告,揭示了一个令人警醒的现象:2023年,互联网总流量中的49.6%由机器人贡献,相较于上一年增长了2%,创下了自2013年监测以来的历史新高。这一显…

【性能测试】接口测试各知识第4篇:Jmeter 八大元件及执行顺序,学习目标【附代码文档】

接口测试完整教程(附代码资料)主要内容讲述:接口测试,学习目标学习目标,2. 接口测试课程大纲,3. 接口学完样品,4. 学完课程,学到什么,5. 参考:,1. 理解接口的概念。学习目标,RESTFUL1. 理解接口的概念,2.什么是接口测试…

我的2024年暑期三下乡实践宣传投稿之旅

身为2024年暑期大学生三下乡社会实践活动的一员,我肩负着学院赋予的对外信息宣传投稿考核任务。在这条特殊的宣传之路上,我经历了从之初摸着石头过河,一家家联系媒体的艰辛,到后来使用智慧软文发布系统网站进行投稿发文章的轻松转变。 刚开始,我对媒体投稿几乎一无所知。为了完…

力扣136. 只出现一次的数字

Problem: 136. 只出现一次的数字 文章目录 题目描述思路复杂度Code 题目描述 思路 由于题目要求使用线性时间复杂度和常量级的空间复杂度,再加上找重复元素这个特性,我们可以想到使用位运算来求解: 1.任何数与其本身异或得0,任何…

单车模型下Stanley循迹

文章目录 1 Stanley方法2 实现3 参考资料 1 Stanley方法 Stanley与pure pursuit方法都是基于几何的路径跟踪方法,pure pursuit的思想是要让车辆的后轴中心经过目标点,从而计算车辆的前轮转角。Stanley则除了利用横向跟踪误差外,还利用车辆的航…

CSS基础常用属性之颜色(如果想知道CSS的颜色知识点,那么只看这一篇就足够了!)

前言:在我们学习CSS的时候,主要学习选择器和常用的属性,而这篇文章讲解的就是最基础的属性——颜色。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 目录 1.颜色属性 【1】使用颜色关键词表…