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

开发函数踩坑记 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.dtcms.com/a/178097.html

相关文章:

  • 2022年8月,​韩先超对中移信息进行微服务架构原理(Docker+k8s+DevOps+Go等)培训
  • HuggingFace与自然语言处理(从框架学习到经典项目实践)[ 01 API操作 ]
  • 【嵌入式开发-SPI】
  • C——操作符详解
  • 【统计学基础】随机抽样的特点
  • WiseAD:基于视觉-语言模型的知识增强型端到端自动驾驶——论文阅读
  • android手机中使用usb hid硬件esp32-s3模拟鼠标和触控板来实现模拟点击、模拟滑动等操作(免费送源代码)
  • 【JAVA】十三、基础知识“接口”精细讲解!(三)(新手友好版~)
  • 【已解决】WORD域相关问题;错误 未找到引用源;复制域出错;交叉引用域到底是个啥
  • PyTorch 入门与核心概念详解:从基础到实战问题解决
  • swagger3融入springboot
  • XML语言
  • 前端实战中的单例模式:以医疗药敏管理为例
  • 从一城一云到AI CITY,智慧城市进入新阶段
  • OpenCV 中用于背景分割的一个类cv::bgsegm::BackgroundSubtractorLSBP
  • 【数据融合实战手册·应用篇】“数字孪生+视频融合”让智慧城市拥有空间感知
  • 大语言模型主流架构解析:从 Transformer 到 GPT、BERT
  • 【JS逆向基础】前端基础-HTML与CSS
  • ‌CDGP|数据治理:探索企业数据有序与安全的解决之道
  • 开源照片管理系统PhotoPrism的容器化部署与远程管理配置
  • Python中的re库详细用法与代码解析
  • 跨浏览器自动化测试的智能生成方法
  • mission planner烧录ardupilot固件报错死机
  • 02_JVM
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月8日第72弹
  • SQLite3常用语句汇总
  • 文件包含 任意文件读取
  • 使用Jmeter进行核心API压力测试
  • 云计算的基础概论
  • 【工具推荐】Code2Prompt