在 MySQL 中按查询分组期间获取时差

Get time difference during a Grouped by query in MySQL

如何在 SQL 查询期间获取第一行和最后一行之间的时间?

数据如下:

|--------|-----------|---------------------|
| EST_Id | EST_Token | EST_Datetime        |
|--------|-----------|---------------------|
|      1 |     vexef | 2020-10-17 16:13:01 |
|      2 |     vexef | 2020-10-17 16:13:21 |
|      3 |     vexef | 2020-10-17 16:14:31 |
|      4 |     vexef | 2020-10-17 16:13:51 |
|      5 |     fardd | 2020-10-17 17:00:11 |
|      6 |     fardd | 2020-10-17 17:00:17 |
|      7 |     fardd | 2020-10-17 17:00:19 |
|--------|-----------|---------------------|

例如令牌 vexef 我应该有 50 秒。

这是我试过的:

SELECT *, TIMEDIFF(MAX(EST_Datetime), MIN(EST_Datetime))  AS diff FROM table GROUP BY EST_Token ORDER BY EST_Id ASC

查询看起来有效,但 diff returns 我 0.

谢谢。

您似乎想要聚合:

select est_token, timestampdiff(second, min(est_datetime), max(est_datetime)) diff
from mytable
group by est_token

每行 est_token,最早和最晚之间的差异 est_datetime,以秒表示。