MySQL 同一列记录的时间戳差异

MySQL timestampdiff of records on same column

我有一个 table,我试图在其中对同一列的时间求和。我有一列记录任何事件的所有时间条目。所以,我想按网关 ID 对它们进行分组,并以小时、分钟和秒为单位获取值。我曾尝试使用 timestampdiff,但它需要三个参数,而且由于我只有一行,所以我找不到方法。那可能吗?我的 table 看起来像这样:

    +----+---------+---------------------+
    | id | gateway |      timestamp      |
    +----+---------+---------------------+
    |  1 |       1 | 2018-03-21 08:52:51 |
    |  2 |       1 | 2018-03-21 08:52:54 |
    |  3 |       1 | 2018-03-21 08:52:58 |
    |  4 |       1 | 2018-03-21 08:53:11 |
    |  5 |       2 | 2018-03-21 08:53:51 |
    |  6 |       1 | 2018-03-21 08:54:21 |
    |  7 |       2 | 2018-03-21 08:54:32 |
    |  8 |       2 | 2018-03-21 08:54:44 |
    |  9 |       2 | 2018-03-21 08:54:53 |
    | 10 |       2 | 2018-03-21 08:55:01 |
    +----+---------+---------------------+

基本上我想按他们的网关对所有记录进行分组,然后在那里计算时间总和。

提前致谢!

我想你想要:

select gateway,
       timestampdiff(seconds, min(timestamp), max(timestamp))
from t
group by gateway;

我对你的问题有点困惑,因为 timestampdiff() 需要三个参数,而不是两个。