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

在MySQL中按分组查询期间获取时间差,mysql,sql,datetime,max,min,Mysql,Sql,Datetime,Max,Min,在SQL查询过程中,如何在第一行和最后一行之间获得时间差异 数据如下: |--------|-----------|---------------------| | EST_Id | EST_Token | EST_Datetime | |--------|-----------|---------------------| | 1 | vexef | 2020-10-17 16:13:01 | | 2 | vexef | 2020-10-17

在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
返回我
0


谢谢。

您似乎想要聚合:

select est_token, timestampdiff(second, min(est_datetime), max(est_datetime)) diff
from mytable
group by est_token
这将为每个
est_令牌
提供一行,最早和最晚的
est_日期时间
之间的差异以秒为单位