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

SQL按月份分组统计时长求助:基于Unix时间戳的Hours聚合问题

按月份统计时长的SQL问题解决

需求:按月份对Hours(时长)进行分组统计总和。

数据表结构

idDate(Unix时间戳)Hours
116451763912.1
116454355911.6
116421523911.4
116472463911.7
216472463912.5
116475919910.4

当前尝试的SQL代码

SELECT FROM_UNIXTIME(Date, '%m-%Y') AS prod_month, COUNT(Hours)
FROM my_table
WHERE Date > [最近365天的Unix时间戳]
AND id = 1
GROUP BY prod_month;

理想返回结果

prod_monthHours
02-20223.7
01-20221.4
03-20222.1

问题修正与解决方案

当前代码核心问题是用COUNT(Hours)统计记录条数,而你需要的是时长总和,应替换为SUM(Hours);同时可以优化时间条件写法,自动生成最近365天的Unix时间戳,还能按时间排序让结果更规整。

修正后的SQL:

SELECT 
  FROM_UNIXTIME(Date, '%m-%Y') AS prod_month, 
  SUM(Hours) AS Hours
FROM my_table
WHERE 
  Date > UNIX_TIMESTAMP(NOW() - INTERVAL 365 DAY)
  AND id = 1
GROUP BY prod_month
ORDER BY STR_TO_DATE(prod_month, '%m-%Y');

关键说明

  1. SUM(Hours):替换COUNT实现时长累加,得到每月总时长。
  2. UNIX_TIMESTAMP(NOW() - INTERVAL 365 DAY):自动计算最近365天的时间戳,无需手动输入固定值。
  3. ORDER BY STR_TO_DATE(prod_month, '%m-%Y'):将月份字符串转为日期格式排序,确保结果按时间顺序展示,而非字符串排序。

内容的提问来源于stack exchange,提问作者omand-fl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:20:46