有这样一个问题:如何按时间求累计值如下表所示
| 日期 | 数值 |
| 2005-5-1 | 2.4 |
| 2005-5-2 | 2 |
| 2005-5-3 | 5 |
| 2005-5-4 | 3.5 |
要实现如下结果:
| 日期 | 数值 | 累计 |
| 2005-5-1 | 2.4 | 2.4 |
| 2005-5-2 | 2 | 4.4 |
| 2005-5-3 | 5 | 9.4 |
| 2005-5-4 | 3.5 | 12.9 |
使用如下sql语句就能实现以上功能了
--累计计算
SELECT aa.日期, aa.数值, SUM(lj.数值) AS 累计
FROM 累积 lj INNER JOIN
(SELECT *
FROM 累积) aa ON lj.日期 <= aa.日期
WHERE (aa.日期 <= '2005-05-04') --日期可以变成时间段
GROUP BY aa.日期, aa.数值
ORDER BY aa.日期
博客围绕如何按时间求累计值展开,给出了示例表格及期望结果,并提供了实现该功能的SQL语句。通过INNER JOIN连接表,使用SUM函数计算累计值,还可通过WHERE子句限定日期范围。
1014

被折叠的 条评论
为什么被折叠?



