当前位置: 首页 > news >正文

窗口函数sql使用总结

一、开窗

基础知识:窗口分析函数
(1)LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值

第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL);

(2)LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值

第一个参数为列名,第二个参数为往下第n行(可选,默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL);

(3)FIRST_VALUE(col) 取分组内排序后,截止到当前行,第一个值;

(4)LAST_VALUE(col) 取分组内排序后,截止到当前行,最后一个值;

1、查询上一行数据的值。

select * ,lag(product_num,1,null) over(order by save_date asc) as pre_product_num from test_product 

 2、开窗函数,每行数据记录最大值、最小值、sum 而不是用group by。  

用窗口函数,可以查字段所有信息,group by 的select只能是分组字段信息,有些场景很有用

按产品类目分组,查询平均值、最大值、最小值等等

select *,  avg(price) over ( PARTITION BY category_name ) AS avg_price,sum(amount) over(PARTITION BY category_name),lag(product_num,1,null) over(order by save_date asc) as pre_product_num

from product

二、rows between的基本使用

基础知识

 rows between

  • preceding:往前
  • following:往后
  • current row:当前行
  • unbounded:起点
  • unbounded preceding:表示从前面的起点
  • unbounded following:表示到后面的终点


1、查询前n条数据平局值

    select *,avg(product_num) over(order by save_date desc rows BETWEEN unbounded preceding and current row) as avg_n  from test_product

2、查询当前行数据前2条到当前行数的和

        select *,sum(product_num) over(order by save_date desc rows BETWEEN 2 preceding and current row) as sum_n from test_product

3、查询当前行数据之后的所有行数据的和

select *,sum(product_num) over(order by save_date desc rows BETWEEN current row and unbounded following) as sum_n from test_product

4、查询当前行前1行后1行当前行,3行数据的和

        select *,sum(product_num) over(order by save_date desc rows BETWEEN  1 preceding and 1 following) as sum_n from test_product

相关文章:

窗口函数sql使用总结

一、开窗 基础知识:窗口分析函数 (1)LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往…...

python单因素分析

写了个简易小程序实现,以后用的时候直接复制就行: import numpy as np from scipy.stats import fdatas [[65,60,69,79,38,68,54,67,68,43],[74,71,58,49,58,49,48,68,56,47],[22,34,24,21,20,36,36,31,28,33] ] a 0.05def get_mean_var(data):data_m…...

「C/C++」C++ STL容器库 之 std::list 双向链表容器

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

应用程序框架进阶<HarmonyOS第一课>

一、判断题 1. 一个应用是由一个或多个HAP组成。 正确(True) 错误(False) 正确(True) 回答正确 2. UIAbility组件多实例启动模式是默认的启动模式。 正确(True)错误(False) 错误(False) 回答正确 二、单选题 1. 以下关于指定实例启动模式说法正确的是? …...

【C++】vector<string>-动态数组存储多个string

#1024程序员节 | 征文# //demo #include <iostream> #include <vector> #include <string>using namespace std; int main() {// 创建一个存储字符串的向量vector<string> Record;// 向向量中添加字符串Record.push_back("example");Record…...

66Analytics 汉化版,网站统计分析源码,汉化前台后台

66Analytics 汉化版,网站统计分析源码,汉化前台后台 本源码汉化前台后台&#xff0c;非其他只汉化前台版 网络分析变得容易。自托管、友好、一体化的网络分析工具。轻量级跟踪、会话回放、热图、用户旅程等 简单、好看、友好-大多数网络分析解决方案做得太多了&#xff0c;在大…...

蓝桥杯单片机STC15F2K60S2第十四届省赛代码详细讲解(附完整代码)

本文是写第十四届的蓝桥杯省赛代码&#xff0c;新手教程作者也写了一篇&#xff0c;欢迎去观看作者专门为新手写的一篇。也欢迎收录该专栏。 蓝桥杯单片机STC15F2K60S2第十三届省赛代码详细讲解&#xff08;附完整代码&#xff09; 专栏&#xff1a; 蓝桥杯单片机 然后接下来…...

[免费]SpringBoot+Vue智慧校园(校园管理)系统[论文+源码+SQL脚本]

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue智慧校园(校园管理)系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue智慧校园(校园管理)系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术的迅猛发展&#xff0c…...

景区导航地图怎么实现?基于LBS与3D GIS的智慧景区导航导览系统技术路线

随着经济的发展和人们物质生活水平改善,居民的旅游需求呈现多元化和个性化&#xff0c;自助旅游的人越来越多。许多游客在旅游行程中需要随时随地了解旅游景点有关的各类信息&#xff0c;如旅游景点介绍、推荐路线、地图导航等&#xff0c;合理规划和安排旅游线路。正是为了应对…...

RedisIO多路复用

一、多路复用要解决的问题: 并发多客户端连接&#xff0c;在多路复用之前的处理方案是同步阻塞网络IO模型&#xff0c;这种模型的特点就是用一个进程来处理一个网络连接。优点在于比较简单&#xff0c;缺点在于性能较差&#xff0c;每个用户请求到来都得占用一个进程来处理&am…...

C++的相关习题(2)

初阶模板 下面有关C中为什么用模板类的原因&#xff0c;描述错误的是? ( &#xff09; A.可用来创建动态增长和减小的数据结构 B.它是类型无关的&#xff0c;因此具有很高的可复用性 C.它运行时检查数据类型&#xff0c;保证了类型安全 D.它是平台无关的&#xff0c;可移植…...

C++《vector的模拟实现》

在之前《vector》章节当中我们学习了STL当中的vector基本的使用方法&#xff0c;了解了vector当中各个函数该如何使用&#xff0c;在学习当中我们发现了vector许多函数的使用是和我们之前学习过的string类的&#xff0c;但同时也发现vector当中一些函数以及接口是和string不同的…...

无人机避障——路径规划篇(一) JPS跳点搜索算法A*算法对比

JSP 跳点搜索算法与改进 A*算法对比 一、算法概述: 跳点搜索(Jump Point Search,JPS)算法:一种用于路径规划的启发式搜索算法。它主要用于在网格地图(如游戏地图、机器人运动规划地图等)中快速找到从起点到终点的最短路径。该算法在改进 A*算法的基础上进行了优化,通过跳过一…...

OpenCV ORB角点检测匹配和偏移计算

OpenCV ORB角点检测匹配和偏移计算 1. 简介2. ORB角点检测匹配和偏移计算2.1. 创建平移图片2.2. ORB角点检测2.3. ORB角点匹配2.4. 计算变换矩阵 1. 简介 首先通过 cv2.ORB_create 创建ORB检测器 orb&#xff0c; 然后通过 orb.detectAndCompute 检测两张图片获得ORB角点&…...

图文详解ChatGPT-o1完成论文写作的全流程

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 本月中旬OpenAI发布了OpenAI o1系列新的AI模型。 据OpenAI介绍&#xff0c;这些模型旨在花更多时间思考后再做出反应&#xff0c;就像人一样。通过训练&#xff0c;它们学会改进思维过…...

在线体验Sketch中文版,免费下载即刻上手!

Sketch是一款轻量而高效的矢量设计工具&#xff0c;助力全球设计师创造了诸多惊艳作品。安装Sketch的优势主要体现在其矢量编辑、控件和样式功能上。而下载安装“Sketch中文版”即时设计同样出色&#xff0c;它作为一站式设计平台&#xff0c;功能更全面。即时设计拥有纯中文的…...

Redis——缓存

目录 前言 一、缓存基本概念 1.概念 2.二八定律 二、使用 Redis 作为缓存 三、缓存的更新策略 1.定期生成 2.实时生成 四、Redis 内存淘汰机制 1.通用淘汰策略 &#xff08;1&#xff09;FIFO &#xff08;2&#xff09;LRU &#xff08;3&#xff09;LFU &#…...

RHCSA笔记三

第二章 linux中执行命令 命令格式 命令分为两类 内置命令&#xff1a;由 shell 程序自带的命令 外部命令&#xff1a;有独立的可执行程序文件&#xff0c;文件名即命令名 格式 主命令 参数 操作对象 # 注意&#xff1a; 下面是对于命令的语法的一些符号的说明&#xff1…...

【python】sorted() list.sort()

文章目录 sorted()和list.sort()sorted 函数sorted()根据键对字典排序根据字典的键排序根据字典的值排序将排序结果转换回字典 list.sort() 方法总结 keylambda student: student[age] sorted()和list.sort() 在Python中&#xff0c;sorted 函数和 list.sort() 方法都可以用来…...

训练集alpaca、sharegpt格式

LLaMA-Factory微调支持的格式 支持 alpaca 格式和 sharegpt 格式的数据集。 Alpaca格式 格式: [{"instruction": "人类指令(必填)","input": "人类输入(选填)","output": "模型回答(必填)","syst…...

Gemini深度研究模式权限与数据隔离机制全披露(含GDPR/等保2.0合规对照表)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Gemini深度研究模式权限与数据隔离机制全景概览 Gemini 深度研究模式&#xff08;Deep Research Mode&#xff09;是 Google 提供的高级推理能力&#xff0c;专为复杂多步信息检索与跨源分析设计。该模…...

通用AGI终极范式:从多模态感知到意识涌现的统一理论(世毫九实验室原创研究)

通用AGI终极范式&#xff1a;从多模态感知到意识涌现的统一理论作者&#xff1a;方见华单位&#xff1a;世毫九实验室摘要本研究基于世毫九理论体系的数学框架&#xff0c;构建了通用人工智能&#xff08;AGI&#xff09;的完整理论体系和演化路径。通过建立包含拓扑复杂度、动…...

异构GPU推理优化:Tessera架构解析与实践

1. 异构GPU推理的性能瓶颈与挑战在当前的AI推理服务部署中&#xff0c;混合使用不同代际的GPU已经成为提升性价比的常见做法。比如将最新的H100与相对便宜的L40S搭配使用&#xff0c;或者将计算密集型的B200与内存优化的H100组合部署。然而&#xff0c;这种异构环境下的资源利用…...

基于LLM的Python脚本自我进化:构建AI驱动的代码优化框架

1. 项目概述&#xff1a;当Python脚本学会自我进化几年前&#xff0c;如果有人告诉我&#xff0c;我写的Python脚本能在我喝咖啡的时候自己给自己“打补丁”、优化逻辑&#xff0c;我肯定会觉得这是科幻小说里的情节。但今天&#xff0c;这已经是我日常工作流的一部分。这个项目…...

MarkFlowy:基于智能感知的Markdown写作流工具设计与实现

1. 项目概述&#xff1a;一个为Markdown而生的高效写作流工具 如果你和我一样&#xff0c;每天的工作都离不开Markdown——写技术文档、整理项目笔记、构思博客文章&#xff0c;那你一定体会过那种在“专注写作”和“格式调整”之间反复横跳的痛苦。刚进入心流状态&#xff0c;…...

DRAM计算内存的电源传输网络优化策略

1. DRAM计算内存中的电源传输网络挑战与优化在数据密集型应用爆炸式增长的今天&#xff0c;传统冯诺依曼架构面临严峻的"内存墙"挑战。计算内存&#xff08;Compute-in-Memory, CIM&#xff09;技术通过在内存内部执行计算任务&#xff0c;从根本上改变了数据处理范式…...

从玩具到生产:基于run-llama/rags构建模块化RAG系统的工程实践

1. 项目概述&#xff1a;从“玩具”到“生产力”的RAG系统构建如果你最近在关注大语言模型的应用落地&#xff0c;那么“RAG”这个词一定高频出现在你的视野里。RAG&#xff0c;即检索增强生成&#xff0c;它试图解决大模型“一本正经胡说八道”和“知识陈旧”两大核心痛点。简…...

CSP-J/S 2020 真题精讲:从“优秀的拆分”看二进制位运算的实战应用

1. 从“优秀的拆分”理解二进制位运算的妙用 第一次看到这道题时&#xff0c;我完全被"优秀的拆分"这个说法吸引了。题目要求我们把一个正整数拆分成不同的2的正整数次幂之和&#xff0c;听起来有点抽象对吧&#xff1f;让我用一个生活中的例子来解释&#xff1a;假设…...

制造业备品备件管理痛点破解:磐石电气无人仓库解决方案

在制造业设备自动化、产线连续化运行需求日益提升的当下&#xff0c;备品备件、工装夹具、维修耗材及易损件等物资&#xff0c;已成为保障设备稳定运转、快速处置故障、降低非计划停机损失的核心支撑。尤其在电子制造、半导体、新能源、汽车零部件、电力电气等技术密集型行业&a…...

Midjourney油彩风格进阶必修课:用--no shadow, --iw 2.0, --style raw构建可控厚涂质感(附Gaussian噪声注入对照表)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney油彩风格的美学本质与技术定位 油彩风格&#xff08;Oil Painting Style&#xff09;在 Midjourney 中并非简单滤镜叠加&#xff0c;而是通过语义引导、纹理建模与隐空间解耦共同作用形成的高…...