首页 > 其他分享 >窗口函数 | rows between …… and ……

窗口函数 | rows between …… and ……

时间:2024-05-24 17:56:08浏览次数:9  
标签:... ROWS 窗口 01 between rows 2023 BETWEEN

ROWS BETWEEN ... AND ... 是 SQL 窗口函数中的一个子句,用于定义窗口函数操作的行范围。窗口函数允许用户对一组相关的记录执行计算,这些记录被称为窗口。

基本语法

<窗口函数> OVER (  
    [PARTITION BY <列名>]  
    ORDER BY <列名> [ASC | DESC]  
    [ROWS BETWEEN <开始位置> AND <结束位置>]  
)
  • PARTITION BY:可选,用于将数据分成多个窗口或分区。
  • ORDER BY:指定窗口内数据的排序方式。
  • ROWS BETWEEN ... AND ...:指定窗口的起始行和结束行

ROWS BETWEEN 的选项

UNBOUNDED PRECEDING:从分区的第一行开始。
1 preceding 前1行
1 following 后1行
N PRECEDING:从当前行的前 N 行开始。
CURRENT ROW:当前行。
N FOLLOWING:从当前行的后 N 行开始。
UNBOUNDED FOLLOWING:从分区的最后一行开始(这在实际应用中很少使用,因为这会包括分区中的所有行)。

需求实现

计算每个销售日期及其前后各一天的总销售额,有如下的 sales 表:

CREATE TABLE sales (  
    sale_date DATE,  
    amount DECIMAL(10, 2)  
);  
  
INSERT INTO sales (sale_date, amount) VALUES  
('2023-01-01', 100),  
('2023-01-02', 150),  
('2023-01-03', 200),  
('2023-01-04', 120),  
('2023-01-05', 80);

hsql实现

SELECT  
    sale_date,  
    amount,  
    SUM(amount) OVER (  
        ORDER BY sale_date  
        ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING  
    ) AS rolling_3_day_total  
FROM  
    sales;

输出结果

标签:...,ROWS,窗口,01,between,rows,2023,BETWEEN
From: https://blog.csdn.net/m0_46331650/article/details/139179936

相关文章

  • 【Test 08】优先队列、滑动窗口、DFS
    文章目录1.单词搜索2.除2操作3.dd爱框框1.单词搜索题目链接解题思路:DFS(深度优先遍历),用一个pos记录要匹配单词word的位置,每次与pos进行匹配判断(这样做的好处是不用把答案存下来)注意细节❗:①没有用flag来记录的话,所有在DFS暴搜的时候需要......
  • 代码随想录算法训练营第二天|977(双指针),209(滑动窗口),59(螺旋矩阵)
    977.有序数组的平方**1.数组中有正有负,且本身有序。平方后,较大值从两边来比较取出。**2.使用头尾指针方法。209.长度最小的子数组**1.从数组中找符合要求的连续子数组**2.滑动窗口方法:本质为快慢双指针,快指针不断前进直到子数组满足要求,然后慢指针前进直到子数组不满足......
  • fltk-rs 拖动窗口抖动
    自定义窗口拖动实现,运行时发现抖动。请使用相对屏幕的坐标fltk::app::event_x_root()fltk::app::event_y_root()win.handle({letmutx=0;letmuty=0;move|w,ev|matchev{enums::Evemxt::Push=>{x=f......
  • dotnet X11 设置窗口鼠标触摸命中穿透
    本文记录如何在X11应用里面,使用XShapeCombineRegion方法配置一个X11窗口支持和Win32窗口一样的命中测试穿透功能,即对应Win32的WS_EX_TRANSPARENT的鼠标、触摸等的点击等动作的穿透功能,可以实现在窗口中挖空一块范围直接穿透到后面的窗口在X11窗口中,想要实现让窗口......
  • Unity编辑器Scene窗口快捷操作
    1.按住crtl,可以一个一个单位移动、缩放、旋转物体,单位距离在Edit-Snapsetting中设置,设置单位大小2.选中物体,按住alt+鼠标左键,可以环视目标物体3.按住V键,可以将物体的顶点接到其他物体的顶点 如果要设置更改其他在Scene窗口中的操作,可以利用MonoBehaviour下的OnDrawGizmos或......
  • qt拖动窗口
    voida::mousePressEvent(QMouseEvent*event){if(event->button()==Qt::LeftButton&&event->pos().y()<(this->height()-mainWidget->height())){m_dragging=true;m_dragStarPos=event->pos();}}voida::......
  • 代码随想录算法训练营第十三天 | 239. 滑动窗口最大值 347. 前k个高频元素
    239.滑动窗口最大值题目链接文章讲解视频讲解思路:使用单调队列,来维护有可能成为最大值的元素;   当窗口向右滑动时,判断移除的元素是否是队首元素如果是的话出队;   新加入的元素依次和队尾元素作比较,如果大于队尾元素则将队尾元素循环出队,这样可以保证队列中始终维持......
  • mysql5.7 报错:[ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOIN
    mysql5.7启动报错:2024-05-19T02:02:14.453082Z0[Warning]TIMESTAMPwithimplicitDEFAULTvalueisdeprecated.Pleaseuse--explicit_defaults_for_timestampserveroption(seedocumentationformoredetails).2024-05-19T02:02:14.453139Z0[Note]--secure-file......
  • 【Delphi 开箱即用 1】简单实现拖拽文件到窗口
    当今,大多数个人小程序都普遍具备拖拽功能,因为拖拽操作极其便捷。毕竟,相比于传统的浏览文件夹方式打开目标文件,拖拽操作简直是一种解放。在这里,我们无需依赖任何第三方控件,单纯通过代码实现拖拽功能。目录1.最终效果图2.部分核心代码3.完整Demo源码下载1.最终效果图2.部分......
  • 【jmeter】.SampleException: Mismatch between expected number of columns: 生成报
    1、问题现象Causedby:org.apache.jmeter.report.core.SampleException:Consumerfailedwithmessage:Consumerfailedwithmessage:Mismatchbetweenexpectednumberofcolumns:17andcolumnsinCSVfile:3,checkyourjmeter.save.saveservice.*configurationor......