计算相同id记录的时间

时间:2018-03-10 22:13:33

标签: mysql

有人可以用这个问题来启发我吗? 我们假设我有一个包含多个记录的表:

+--------------+--+
| ID room time |  |
+--------------+--+
| 1  1 10:00   |  |
| 2  2 10:01   |  |
| 3  1 10:01   |  |
| 4  1 10:02   |  |
| 5  1 10:03   |  |
| 6  1 10:04   |  |
| 7  2 10:02   |  |
+--------------+--+

我想只在连续的时候得到1号房间的时间。 此特定表的结果应为:

+--------------+
| id room time |
+--------------+
| 1  1 00:03   |
+--------------+

提前致谢。

1 个答案:

答案 0 :(得分:2)

你可以加入一个表来对抗自己:

让我们说这个表的名字是tbl。 我的查询不是100%正确,因为我不知道您的数据类型是什么时间,但概念是

A表的ID必须小于具有B id的ID,但具有相同的空间。

C表表示检查A和B之间没有ID用于不同房间的记录,这就是为什么C.ID为NULL

SELECT A.ROOM, MAX(B.TIME-A.TIME) FROM tbl A
    INNER JOIN tbl B on A.room=B.room and A.ID<B.ID
    LEFT OUTER JOIN tbl C on A.room<>B.room and A.ID<C.ID and C.ID<B.ID
WHERE C.ID IS NULL
GROUP BY a.room
相关问题