新闻中心

SQL 数值函数如何计算累计和与平均值?

2025-10-10
浏览次数:
返回列表
使用窗口函数可计算累计和与移动平均值,SUM()和*G()结合OVER()子句按排序或分组实现累积计算,如按产品分组的累计收入和3日移动平均。

sql 数值函数如何计算累计和与平均值?

在 SQL 中,计算累计和与平均值主要依赖窗口函数(Window Functions),它们可以在不改变原始行数的情况下,对数据进行分组、排序并执行累积计算。

累计和(Running Total)

使用 SUM() 窗口函数结合 OVER() 子句可以实现累计和。关键在于定义排序顺序,确保累计按预期进行。

语法示例:

SUM(列名) OVER (ORDER BY 排序列)

如果需要按某一维度(如用户、部门)分别计算累计和,则加入 PARTITION BY

SUM(金额) OVER (PARTITION BY 用户ID ORDER BY 日期)

这表示:每个用户的金额按日期顺序逐行累加。

移动平均值(Moving Average)

平均值可通过 *G() 窗口函数实现。与 SUM 类似,结合 OVER() 可计算累计平均或指定范围的移动平均。

MGX MGX

MetaGPT推出的自然语言编程工具

MGX 163 查看详情 MGX

计算每个记录的累计平均值:

*G(数值) OVER (ORDER BY 时间戳 ROWS UNBOUNDED PRECEDING)

若要计算最近 3 行的移动平均(含当前行),使用:

*G(数值) OVER (ORDER BY 时间戳 ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)

实际应用示例

假设有一张销售表 sales,包含字段:date, product, revenue。想查看每个产品每日收入的累计和与 3 日移动平均:

SELECT
  date,
  product,
  revenue,
  SUM(revenue) OVER (PARTITION BY product ORDER BY date) AS running_total,
  *G(revenue) OVER (PARTITION BY product ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_*g
FROM sales;

结果中每行保留原始数据,同时附加两个计算列:累计收入和近期平均收入。

基本上就这些。掌握 OVER() 中的 ORDER BYROWS 定义是关键,能灵活控制累计与滑动计算的范围。

以上就是SQL 数值函数如何计算累计和与平均值?的详细内容,更多请关注其它相关文章!


# 关键在于  # 营销推广费税收分类  # seo系统什么意思  # 东川品牌网站建设招聘  # 网站论坛推广  # 绍兴智能网站建设市价  # 新乡湖南网站优化推广  # 如何在网站发表推广  # 枣庄网站制作推广  # 泉州网站优化seo  # 甘肃网络优化seo招聘  # win  # 若要  # 可通过  # 可以实现  # 解决问题  # 中文网  # 相关文章  # 可计算  # 自然语言  # 子句 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】  解决Flask中Quill编辑器内容提交失败及TypeError的指南  魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】  html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】  J*aScript设计模式实践_j*ascript代码优化  照顾宝贝2小游戏点击立即在线玩  LINUX下如何进行磁盘分区_fdisk与parted工具在LINUX中的使用对比  如何仅使用CSS更改登录界面背景图像图标的颜色  J*a递归快速排序中静态变量的状态管理与陷阱  俄罗斯Yandex免登录入口_Yandex搜索引擎官网一键直达  如何提高微信支付的安全性_微信支付安全防护与设置建议  如何使用纯J*aScript判断Input元素是否在特定类容器内  C++ string find函数返回值npos详解_C++字符串查找失败的判断条件  qq游戏大厅官方下载_qq游戏免费下载安装入口  Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置  C++如何操作注册表_Windows平台下C++读写注册表的API函数详解  win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】  高德地图公交到站提醒失败如何解决 高德提醒权限设置  AO3最新镜像入口 Archive of Our Own官方平台访问  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站  将JSON对象数组转置为键值对列表的实用指南  Pandas DataFrame 多条件优先级排序与排名  电脑屏幕颜色不舒服怎么办_Windows夜间模式与色彩校准教程【护眼技巧】  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  J*aScript 字符串标签转换:使用正则表达式高效替换  漫蛙漫画官方首页 漫蛙2漫画在线阅读入口  Angular中单选按钮的正确使用与常见陷阱解析  c++项目目录结构应该如何组织_c++工程化项目结构规范  Mac怎么锁定备忘录_Mac备忘录加密设置教程  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  J*aScript中赋值与自增运算符的复杂交互与执行机制  大象笔记网页版入口 印象笔记网页版登录入口  React中useState与局部变量:理解组件状态管理与渲染机制  《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情  天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南  c++如何使用TBB库进行任务并行_c++ Intel线程构建模块  Golang如何使用buffered channel提高性能_Golang buffered channel优化技巧  必由学官网入口 必由学教师登录入口  PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符  优化MinIO list_objects_v2 操作的性能瓶颈与最佳实践  qq邮箱日历功能怎么用_创建日程与会议邀请的技巧  在VS Code中配置和运行Dart程序的完整步骤  AO3网页版合集入口 Archive of Our Own同人作品浏览指南  C++指针和引用有什么区别_C++内存管理核心概念深度解析  漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道  MinIO大规模对象列表性能瓶颈深度解析与外部元数据管理策略  Yandex官网免登录入口_俄罗斯Yandex搜索引擎一键访问  J*aScript异步迭代器_j*ascript异步遍历  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南 

搜索