You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按日期时间戳等特定列分组实现指定列求和?

SQL按时间戳分组求和实现方案

错误原因

你当前编写的SQL存在两点问题:

  1. 普通聚合SUM函数需要配合GROUP BY子句指定分组维度,未加分组逻辑时返回的是全表总求和值,和你按天分组的需求不符
  2. 普通分组聚合会合并同分组的所有行,无法保留每行的plans、单条total_employees明细字段,不符合你「明细+同组汇总并列展示」的输出要求

推荐实现方案(支持窗口函数的数据库,如MySQL8+、PostgreSQL、Hive、Spark SQL等)

使用窗口聚合函数实现需求,语法如下:

select 
  day_timestamp,
  plans,
  total_employees,
  sum(total_employees) over (partition by day_timestamp) as `total category by date`
from `table`

逻辑说明:

  • partition by day_timestamp 指定按时间戳维度划分计算分组
  • 窗口函数不会合并原始行,会在每一行都返回对应时间戳分组的total_employees汇总值,完全匹配你需要的输出效果

兼容旧版数据库的实现方案(如MySQL5.x及更早版本)

如果你的数据库不支持窗口函数,可以用子查询先计算每天的汇总值,再和原始表关联得到结果:

select 
  t.day_timestamp,
  t.plans,
  t.total_employees,
  t_total.total as `total category by date`
from `table` t
left join (
  select day_timestamp, sum(total_employees) as total 
  from `table` 
  group by day_timestamp
) t_total on t.day_timestamp = t_total.day_timestamp

内容的提问来源于stack exchange,提问作者Mel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:57:02