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

开发函数踩坑记 sum(1) over(partition by stock_code order by trade_date asc)

在 SQL 中,sum(1) over(partition by sac.stock_code order by sac.trade_date asc) 是窗口函数的一种应用,以下是对它的详细解释:

  1. sum(1):这里 sum 是聚合函数,1 是要进行求和的表达式。由于 1 是常量,每一行的 1 相加,实际上就是对行数进行计数(因为每一行的 1 相加的结果就等同于行数)。

  2. over 子句over 子句定义了窗口的范围和计算的逻辑。

    • partition by sac.stock_code:按照 sac.stock_code 字段的值对数据进行分组。也就是说,会分别对每个不同的 stock_code 组进行计算。例如,如果有多个不同的 stock_code 值,会分别计算每个 stock_code 组内的结果。
    • order by sac.trade_date asc:在每个分组内,按照 sac.trade_date 字段升序排列。这会影响 sum 函数的计算顺序。例如,对于每个 stock_code 组,会按照 trade_date 从早到晚的顺序依次对行进行处理来计算累计的和(这里是累计的行数)。

举个例子,假设有以下数据:

stock_codetrade_date
A2025-01-01
A2025-01-02
B2025-01-01
B2025-01-02
B2025-01-03

对于上述数据,sum(1) over(partition by stock_code order by trade_date asc) 的计算过程如下:

  • 对于 stock_code 为 A 的组:

    • 第一行 trade_date 为 2025-01-01sum(1) 结果为 1(因为此时累计行数为 1)。
    • 第二行 trade_date 为 2025-01-02sum(1) 结果为 2(累计行数为 2)。
  • 对于 stock_code 为 B 的组:

    • 第一行 trade_date 为 2025-01-01sum(1) 结果为 1
    • 第二行 trade_date 为 2025-01-02sum(1) 结果为 2
    • 第三行 trade_date 为 2025-01-03sum(1) 结果为 3

最终结果会增加一个新的列,显示每个组内按日期顺序累计的行数。

PS:很多人会理解成三天的日期聚合后都是3

  • 第一行 trade_date 为 2025-01-01sum(1) 结果为 3
  • 第二行 trade_date 为 2025-01-02sum(1) 结果为 3
  • 第三行 trade_date 为 2025-01-03sum(1) 结果为 3
http://www.xdnf.cn/news/4705.html

相关文章:

  • 信息系统项目管理工程师备考计算类真题讲解十五
  • java面试OOM汇总
  • 边缘网关(边缘计算)
  • 云平台的技术方向和总体规划
  • 基于卫星遥感数据进行农作物长势监测原理简述
  • BeeWorks IM:专业安全的企业私有化即时通讯软件
  • Linux——Mysql数据库
  • 数据结构*二叉树
  • 软件测试学习笔记
  • 数据结构 - 9( 位图 布隆过滤器 并查集 LRUCache 6000 字详解 )
  • 数据结构 - 10( B- 树 B+ 树 B* 树 4000 字详解 )
  • 谷云科技iPaaS技术实践:集成平台如何解决库存不准等问题
  • 智能外呼机器人的核心优势
  • 《算法导论(第4版)》阅读笔记:p11-p13
  • 图形渲染+事件处理最终版
  • 含铜废水循环利用体系
  • 【杂谈】Godot 2D游戏窗口设置
  • Nginx +Nginx-http-flv-module 推流拉流
  • JAVA:Spring Boot 集成 Lua 的技术博客
  • 深入理解进程与线程、进程池与线程池:企业级开发实战指南
  • Perspective,数据可视化的超级引擎!
  • 【图片合并PDF】一次性将多个文件夹里的图片批量按文件夹为单位合并PDF,多个文件夹图片合并PDF,基于WPF的实现方案
  • win64下cmake+mingw64编译libhv
  • 基于智能家居项目 RGB彩灯(P9813)
  • MIST:一键解锁 macOS 历史版本,旧系统安装不再难!
  • 小米 MiMo 开源:7B 参数凭什么 “叫板” AI行业巨头?
  • COLT_CMDB_linux_userInfo_20250508.sh修复历史脚本输出指标信息中userName与输出信息不一致问题
  • 学习c语言的链表的概念、操作(另一篇链表的笔记在其他的栏目先看这个)
  • 边缘智能:当AI撕掉“云端依赖症”的标签——从纳米级芯片到城市级网络的算力觉醒之路
  • 69.x的平方根