首页 > 解决方案 > MySQL:连续日期之间的累计秒数

问题描述

我正在尝试各种方式来解决这个问题。如图所示,我有一个表,其中有一列给出 ID(不是自动递增),另一列带有 TIMESTAMP 数据。

这是表(表名:t_serie)

我想通过所有表格计算连续日期和第+1行日期之间的秒差的累积总和。

SELECT SUM(TIMESTAMPDIFF(SECOND, t1.time, t2.time)) as total
FROM t_serie AS t1 INNER JOIN t_serie as t2 ON t2.id = t1.id +1

这就是我正在使用的查询,但它不起作用,因为 id 列不是自动增量值。如何在不使用 ALTER TABLE 或使用自动增量 ID 添加新列的情况下执行此操作?

非常感谢您的回答!

标签: mysql

解决方案


您需要id使用下一个更大的 id 加入表的列。因此,加入所有ids大于当前的最低限度id应该做到这一点。

我认为下面的查询应该适合你。

SELECT SUM(TIMESTAMPDIFF(SECOND, t1.time, t2.time)) as total
FROM t_serie AS t1 
INNER JOIN t_serie as t2 
ON t2.id = (SELECT MIN(id) FROM t_serie t3 where t1.id < t3.id);

推荐阅读