SQL常见函数整理 _ LAG() 向上偏移

news2024/11/23 16:32:11

1. 用法
窗口函数,用于访问窗口中当前行之前的行的数据。该函数可以根据需要计算当前行之前的值,使我们能够轻松地比较不同行之间的差异和变化。

2. 基本语法

LAG(column, offset, default_value) OVER (ORDER BY column)
  • column:代表在返回结果集中要检索一行的列
  • offset:可选的,表示返回结果集中所检索行向前的行数
  • default_value:可选的,用于指定未找到所检索行时要返回的默认值
  • ORDER BY子句:指示LAG() 函数应按照哪个列顺序来排序所使用的窗口

3. 应用示例
有一张销售数据表 Sales, 记录每年公司的销售数据,如果想得到每年和前一年的销售数据的对比差异和成长率,如何实现?

--建表
if object_id('Sales','u') is not null drop table Sales
go
create table Sales(
  Year       varchar(10)
, SalesValue int
)
go
insert into Sales
values
 ( '2018',120)
,( '2019',300)
,( '2020' ,240)
,( '2021' ,180)
,( '2022' ,290)
,( '2023' ,400 )
go
--查询
select *
,lag(SalesValue , 1 ) over(order by Year ) as SalesValue_LastYear
,SalesValue - lag(SalesValue , 1 ) over(order by Year ) as DIff
,SalesValue * 1.0 / lag(SalesValue , 1 ) over(order by Year )  -1 as Growth
from Sales

查询结果如下图所示:
在这里插入图片描述

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

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

相关文章

【Django笔记】10大模块md文档第6篇:Django视图、Cookie和session状态、模板和过滤器

Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展…

H5ke12--2--学生选课表格的编辑

方法1不可以修改的用label,如何按了哪一行 就会在下面有个文本显示可编辑的一行 方法2每一行后面都有一个编辑, 3对每一个修改,每一个td失去焦点都会有,直接到达我们服务器 注意 如果用span的每一个html元素都可以自己定义属性 Data-属性名,data-Address links也要给为span 1…

当班主任工资会高一些吗?

很多人在选择职业的时候,都会考虑到工资这一方面。而班主任这个职业,往往被认为是一种高收入的工作。那么,班主任的工资真的会比其他科任老师高吗? 班主任除了教学任务之外,还要负责管理班级的日常事务,包括…

Python入门03变量

目录 1 什么是变量2 变量声明3 变量命名规则4 变量类型5 类型转换总结 1 什么是变量 编程语言中变量就像容器一样,可以用来存放东西 我的变量就像杯子一样,可以用来盛放各种饮料。在Python中变量用来存放各种各样的数据,比如整数、浮点数、…

transformer训练与推理

以下transformer基于中译英任务 数据集原本的目标语言标签dec添加完padding后, 如果在dec前面加一个S构成了dec_input,而如果在dec后面加一个E构成了dec_output(输出的标签) attention 有两种,self attention(encoder里面的是源语言输入句子…

基于Springboot的冬奥会科普平台(有报告),Javaee项目,springboot项目。

演示视频: 基于Springboot的冬奥会科普平台(有报告),Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…

jetson NX部署Yolov8

一,事情起因,由于需要对无人机机载识别算法进行更新,所以需要对yolov8算法进行部署到边缘端。 二,环境安装 安装虚拟环境管理工具,这个根据个人喜好。 我们需要选择能够在ARM架构上运行的conda,这里我们选择conda-forge 下载地址 安装即可 剩下的就是和conda 创建虚拟…

【Vue】vue指令

目录 V-html v-show和v-if v-show 显示 隐藏 v-if 显示 隐藏 总结 显示隐藏的应用场景 未登录的情况 登录的情况 v- else 和 v-else-if v-if 和v-else v-if 和 v-else-if 总结: v-on 语法一: 语法二: 调用传参 v-bind…

ruoyi-plus-vue部署

安装虚拟机 安装docker 安装docker 安装docker-compose 可能遇到的错误 Failed to deploy ruoyi/ruoyi-server:5.1.0 Dockerfile: ruoyi-admin/Dockerfile: Cant retrieve im age ID from build stream 安装 vim 命令 yum install vim -y 修改文件 vim /etc/resolv.conf …

1、Docker概述与安装

相关资源网站: ● docker官网:http://www.docker.com ● Docker Hub仓库官网: https://hub.docker.com/ 注意,如果只是想看Docker的安装,可以直接往下拉跳转到Docker架构与安装章节下的Docker具体安装步骤,一步步带你安…

set和map + multiset和multimap(使用+封装(RBTree))

set和map 前言一、使用1. set(1)、模板参数列表(2)、常见构造(3)、find和count(4)、insert和erase(5)、iterator(6)、lower_bound和upper_bound 2. multiset3. map(1)、模板参数列表(2)、构造(3)、modifiers和operations(4)、operator[] 4. multimap 二、封装RBTree迭代器原理R…

2023年P气瓶充装证模拟考试题库及P气瓶充装理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年P气瓶充装证模拟考试题库及P气瓶充装理论考试试题是由安全生产模拟考试一点通提供,P气瓶充装证模拟考试题库是根据P气瓶充装最新版教材,P气瓶充装大纲整理而成(含2023年P气瓶…

云原生基础概述

云原生的理解 在云原生这个概念还没流行起来的时候,公司开发了一款应用,这是「原生应用」,一般来说传统部署应用的方式都是通过购买物理的服务器,然后将需要上线的项目部署到物理服务器中跑起来。而购买物理机器,还要…

指针运算详解

1.引入 指针的基本运算有三种,分别是: • 指针- 整数 • 指针-指针 • 指针的关系运算 2.指针- 整数 因为数组在内存中是连续存放的,只要知道第⼀个元素的地址,顺藤摸⽠就能找到后⾯的所有元素。 int arr[10] {1,2,3,4,5,…

开发者神器-GitHub Copilot

关于费用 Copilot认证地址:https://web.52shizhan.cn/activity/copilot ① 无需账号,100%认证成功。 ② 支持windows、mac、linux系统。 ③ 可激活Jetbrains全系列,VsCode和Android Studio的Copilot插件,一键认证,100%秒成功。 …

NPU、CPU、GPU算力及算力计算方式

NVIDIA在9月20日发布的NVIDIA DRIVE Thor 新一代集中式车载计算平台,可在单个安全、可靠的系统上运行高级驾驶员辅助应用和车载信息娱乐应用。提供 2000 万亿次浮点运算性能(2000 万亿次8位浮点运算)。NVIDIA当代产品是Orin,算力是…

抽象类, 接口, Object类 ---java

目录 一. 抽象类 1.1 抽象类概念 1.2 抽象类语法 1.3 抽象类特性 1.4 抽象类的作用 二. 接口 2.1 接口的概念 2.2 语法规则 2.3 接口的使用 2.4 接口间的继承 2.5 抽象类和接口的区别 三. Object类 3.1 toString() 方法 3.2 对象比较equals()方法 3.3 hash…

24V转5V负压-5V3A降压芯片WT6019

24V转5V负压-5V3A降压芯片WT6019 WT6019这个小家伙,电压输入范围从6V到30V,能给你提供3A的电流,稳稳的!而且,它的开关频率高达130kHz,让动态响应飞快,让你的设备随时保持冷静。WT6019转负压5V-5…

H5ke12--1--iframe标签制作页面的使用

上次说到 如何我们的数据html页面返回到服务器,服务器到html.submit不要了,直接button普通按钮,action也不用,,,fetch直接异步请求,那么就会有数据发送到服务器 Repones.write写入就行了,直接写的就是html页面演示 这次我们来看iframe, H5加入了传输页面的新的事件 注意 link、…

Python之Pygame游戏编程详解

一、介绍 1.1 定义 Pygame是一种流行的Python游戏开发库,它提供了许多功能,使开发人员可以轻松创建2D游戏。它具有良好的跨平台支持,可以在多个操作系统上运行,例如Windows,MacOS和Linux。在本文中,我们将…