mysql - MySQL:连续日期之间的累计秒数
问题描述
我正在尝试各种方式来解决这个问题。如图所示,我有一个表,其中有一列给出 ID(不是自动递增),另一列带有 TIMESTAMP 数据。
我想通过所有表格计算连续日期和第+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 添加新列的情况下执行此操作?
非常感谢您的回答!
解决方案
您需要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);
推荐阅读
- email - 在存储过程中发送邮件时如何禁用自动附件
- javascript - 访问和循环访问 JSON 文件
- java - 使用辅助功能 ID 和 xpath 错误单击菜单
- python - 使用来自liswidget的itemdelegate和信号时如何保护tablewidget中更改的单元格?
- c++ - 使用 DirectX 11 插入背景颜色?
- r - 如何为每个 x 值制作两个条形图?
- sql - 将自定义语句转换为激活的代码
- c# - POST 到 OData v4 Web API 操作时子集合为空
- r - 使用 R 中的因子 self 的子集重命名因子水平
- android - 试图在 Android Room 中捕获 SQLiteConstraintException 并显示警报