[SQL挖掘机] - 窗口函数介绍
介绍:
窗口函数也称为 OLAP 函数。OLAP 是 OnLine AnalyticalProcessing 的简称,意思是对数据库数据进行实时分析处理。窗口函数是一种用于执行聚合计算和排序操作的功能强大的sql函数。它们可以在查询结果集中创建一个窗口(window),并在该窗口上进行计算,而不影响结果集的整体。
窗口函数通常与over子句一起使用,以定义窗口的范围。over子句可以指定窗口的排序方式、分区方式和边界等。
为了便于理解,称之为 窗口函数。常规的 select 语句都是对整张表进行查询,而窗口函数可以让我们有选择的去某一部分数据进行汇总、计算和排序。
用法:
窗口函数的通用形式:
<窗口函数> over ([ partition by <列名> ] [ order by <排序用列名> ])
[ ]中的内容可以省略。
窗口函数最关键的是搞明白关键字 partiton by 和 order by 的作用。
- partiton by 子句 可选参数,指示如何将查询行划分为组,类似于 group by 子句的分组功能,但是 partition by 子句并不具备 group by 子句的汇总功能,并不会改变原始表中记录的行数。
- order by 子句 可选参数,指示如何对每个分区中的行进行排序,即决定窗口内,是按那种规则(字段)来排序的。
注意:
虽然 partiton by 子句 和 order by 子句 都是可选参数,但是两个参数不能同时没有(最少二选一)。不然, <窗口函数> over( ) 这种用法没用实际意义(窗口由所有查询行组成,窗口函数使用所有行计算结果)。
分类:
常用的窗口函数有:
- row_number():为每一行返回一个唯一的数值,通常用于给结果集中的行进行编号。
- rank()和dense_rank():根据指定的排序顺序,为结果集中的每一行分配一个排名。rank()在遇到相同的值时会跳过相同的排名,而dense_rank()不会跳过。
- lag()和lead():lag函数用于获取当前行之前的某一行的值,lead函数用于获取当前行之后的某一行的值。它们与排序有关,可以用于查找前一行或后一行的值。
- sum()、avg()、min()、max()等聚合函数:这些聚合函数可以在窗口范围内进行计算,并返回结果集中每一行的聚合值。
除了以上列举的函数外,窗口函数还有其他一些类型和变种,可以根据具体的需求选择使用。
窗口函数在sql中的应用非常广泛,可以用于计算移动平均、累计求和、分组内排序等。它们提供了一种灵活且高效的方式来处理复杂的查询需求。
相关文章:
[SQL挖掘机] - 窗口函数介绍
介绍: 窗口函数也称为 OLAP 函数。OLAP 是 OnLine AnalyticalProcessing 的简称,意思是对数据库数据进行实时分析处理。窗口函数是一种用于执行聚合计算和排序操作的功能强大的sql函数。它们可以在查询结果集中创建一个窗口(window)…...
原生js实现锚点滚动顶部
简介 使用原生js API实现滚动到指定容器的顶部,API是scrollIntoView 使用 let eldocment.querySelector() 获取dom元素el.scrollIntoView()该元素滚动到其父元素的顶部 高级用法 scrollIntoView(Options)//option可以配置如下 options{behavior:smoot…...
使用mysql接口遇到点问题
game_server加入了dbstorage的代码。dbstorage实现了与mysql的交互:driver_mysql。其中调用了mysql相关的接口。所以game_server需要链接libmysql.lib。 从官网下载了mysql的源码:在用cmake构建mysql工程的时候,遇到了一些问题。 msyql8.0需…...
excel绘制折线图或者散点图
一、背景 假如现在通过代码处理了一批数据,想看数据的波动情况,是不是还需要写个pyhon代码,读取文件,绘制曲线,看起来也简单,但是还有更简单的方法,就是直接生成csv文件,csv文件就是…...
ChatGPT长文本对话输入方法
ChatGPT PROMPTs Splitter 是一个开源工具,旨在帮助你将大量上下文数据分成更小的块发送到 ChatGPT 的提示,并根据如何处理所有块接收到 ChatGPT(或其他具有字符限制的语言模型)的方法。 推荐:用 NSDT设计器 快速搭建可…...
FFmpeg-swresample的更新
auto convert的创建 在FFmpeg/libavfilter/formats.c中定义了negotiate_video和negotiate_audio,在格式协商,对于video如果需要scale,那么就会自动创建scale作为convert,对于audio,如果需要重采样,则会创建…...
回答网友 修改一个exe
网友说:他有个很多年前的没有源码的exe,在win10上没法用,让俺看一下。 俺看了一下,发现是窗体设计的背景色的问题。这个程序的背景色用的是clInactiveCaptionText。clInactiveCaptionText 在win10之前的系统上是灰色,但…...
数据可视化 - 动态柱状图
基础柱状图 通过Bar构建基础柱状图 from pyecharts.charts import Bar from pyecharts.options import LabelOpts # 使用Bar构建基础柱状图 bar Bar() # 添加X轴 bar.add_xaxis(["中国", "美国", "英国"]) # 添加Y轴 # 设置数值标签在右侧 b…...
【JVM】JVM五大内存区域介绍
目录 一、程序计数器(线程私有) 二、java虚拟机栈(线程私有) 2.1、虚拟机栈 2.2、栈相关测试 2.2.1、栈溢出 三、本地方法栈(线程私有) 四、java堆(线程共享) 五、方法区&…...
自动驾驶感知系统--惯性导航定位系统
惯性导航定位 惯性是所有质量体本身的基本属性,所以建立在牛顿定律基础上的惯性导航系统(Inertial Navigation System,INS)(简称惯导系统)不与外界发生任何光电联系,仅靠系统本身就能对车辆进行连续的三维定位和三维定向。卫星导…...
Netty简介
Netty Netty初体验基础概念Reactor模型传统的阻塞IO模型基础Reactor模型多线程Reactor模型 为什么要使用Netty? (NIO的框架,用于解决高并发出现的问题) *BIO:同步且阻塞的IO NIO:同步且非阻塞的IO(不是说线程&#x…...
基于TCP/IP对等模型对计算机网络知识点的整合
目录 前言 应用层 Telnet SSH FTP/TFTP SNMP:简单的网络管理协议 HTTP:超文本传输协议 SMTP:电子邮件传输协议 DNS:域名解析协议 DHCP:动态主机配置协议 NTP:网络时钟协议 传输层 TCP UDP 端…...
【SQL应知应会】表分区(一)• Oracle版
欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 分区表 • Oracle版 前言一、分区表1.什么是表分区…...
PostgreSQL 常用空间处理函数
1.OGC标准函数 管理函数: 添加几何字段 AddGeometryColumn(, , , , , ) 删除几何字段 DropGeometryColumn(, , ) 检查数据库几何字段并在geometry_columns中归档 Probe_Geometry_Columns() 给几何对象设置空间参考(在通过一个范围做空间查询时常用&…...
ubuntu初始化/修改root密码
1.登录ubuntu后,使用sudo passwd root命令,进行root密码的初始化/修改,注:这里需要保证两次输入的密码都是同一个,才可成功 ubuntugt-ubuntu22-04-cmd-v1-0-32gb-100m:~/ocr$ sudo passwd root New password: Retype…...
【Linux后端服务器开发】select多路转接IO服务器
目录 一、高级IO 二、fcntl 三、select函数接口 四、select实现多路转接IO服务器 一、高级IO 在介绍五种IO模型之前,我们先讲解一个钓鱼例子。 有一条大河,河里有很多鱼,分布均匀。张三是一个钓鱼新手,他钓鱼的时候很紧张&a…...
支持向量机(iris)
代码: import pandas as pd from sklearn.preprocessing import StandardScaler from sklearn import svm import numpy as np# 定义每一列的属性 colnames [sepal-length, sepal-width, petal-length, petal-width, class] # 读取数据 iris pd.read_csv(data\\i…...
24考研数据结构-第二章:线性表
目录 第二章:线性表2.1线性表的定义(逻辑结构)2.2 线性表的基本操作(运算)2.3 线性表的物理/存储结构(确定了才确定数据结构)2.3.1 顺序表的定义2.3.1.1 静态分配2.3.1.2 动态分配2.3.1.3 mallo…...
Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述动态 sql 的执行原理不?
OGNL表达式 OGNL,全称为Object-Graph Navigation Language,它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,它旨在提供一个更高的更抽象的层次来对Java对象图进行导航。 OGNL表达式的基本单位是"导航链"&a…...
250_C++_typedef std::function<int(std::vector<int> vtBits)> fnChkSstStt
假设我们需要定义一个函数类型来表示一个能够计算整数向量中所有元素之和的函数。 首先,我们定义一个函数,它的参数是一个 std::vector 类型的整数向量,返回值是 int 类型,表示所有元素之和: int sumVectorElements(std::vector<int> vt) {int sum = 0;for (int n…...
Qwen3-TTS开源大模型实战:复古HUD界面下的AI语音创作工作流
Qwen3-TTS开源大模型实战:复古HUD界面下的AI语音创作工作流 1. 引言:当AI语音合成遇上复古游戏风 想象一下,你不再需要面对枯燥的音频参数调节界面,而是走进一个像素风的游戏世界。在这里,生成一段AI语音就像玩一款复…...
【技术干货】把 Claude 变成“本地自动化工程师”:Anthropic Computer Use 能力与实战落地指南
摘要 Anthropic 在 Claude Code 中正式引入 Computer Use 能力,让大模型可以直接操作你的桌面应用和浏览器,从“写代码助手”升级为“全栈自动化代理”。本文从原理、典型场景、跨平台替代方案,到如何用统一 OpenAI 兼容 API(基于…...
手机号查询QQ号:技术解析与实用指南
手机号查询QQ号:技术解析与实用指南 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 当你更换手机后忘记QQ账号,或需要验证手机号与QQ的绑定关系时,phone2qq项目提供了一种高效解决方案。这是一个基…...
SDXL 1.0电影级绘图工坊惊艳案例:电影质感风景图动态范围实测
SDXL 1.0电影级绘图工坊惊艳案例:电影质感风景图动态范围实测 1. 项目简介 SDXL 1.0电影级绘图工坊是基于Stable Diffusion XL Base 1.0模型深度优化的AI绘图工具,专门为RTX 4090显卡的24G大显存进行了极致性能调优。与常规部署方式不同,这…...
Nordic Power Profiler Kit II 保姆级教程:从硬件连接到软件操作全流程
Nordic Power Profiler Kit II 实战指南:从开箱到精准功耗分析 第一次拿到Power Profiler Kit II(PPK2)时,我正为一个蓝牙低功耗项目的电池寿命问题头疼不已。这款由Nordic Semiconductor推出的专业功耗分析工具,凭借其…...
什么是 AI Agent?它和直接调用大模型 API 做一次问答有什么本质区别?
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:AI大模型原理和应用面试题 文章目录一、🍀AI Agent概念、AI Agent和直接…...
弹幕盒子:5分钟掌握专业弹幕制作,零基础也能轻松上手
弹幕盒子:5分钟掌握专业弹幕制作,零基础也能轻松上手 【免费下载链接】danmubox.github.io 弹幕盒子 项目地址: https://gitcode.com/gh_mirrors/da/danmubox.github.io 你是否曾为视频制作寻找合适的弹幕工具而烦恼?想要给视频添加互…...
Anubi基金会为何押注Cassava?深度解析Web3数据层+社交任务的黄金组合
Anubi基金会战略投资Cassava:Web3社交任务与数据层的价值重构 当Web3世界从DeFi的金融实验转向更广泛的社会化应用时,基础设施的演进正在经历一场静默的革命。Anubi基金会近期对Cassava Network的战略投资,揭示了两个关键趋势:社交…...
Phi-4-mini-reasoning作品集:自动将推理过程转化为教学级讲解语言
Phi-4-mini-reasoning作品集:自动将推理过程转化为教学级讲解语言 1. 模型简介 Phi-4-mini-reasoning是一个轻量级的开源文本生成模型,专注于将复杂推理过程转化为清晰易懂的教学语言。作为Phi-4模型家族的一员,它特别擅长处理需要逐步解释…...
核心产品强势放量,扭亏为盈的康希诺未来怎么看?
3月30日晚间,康希诺发布2025年年度报告。报告期内,公司实现营业收入10.68亿元,同比增长26.18%;实现归母净利润2787.27万元,成功实现扭亏为盈,较2024年实现重大逆转。2025年,康希诺凭借核心产品放…...
