mysql:计算通过sql创建的列的总和

时间:2018-09-27 19:40:35

标签: mysql

i显示用户1每天的第一个和最后一个日志

我还计算了第一个和最后一个日志之间的时间差。

所以我想要的是计算时间差的总和,例如

总和(总)

这是我的跑步

SELECT id,device,userid,time, MIN(time) as Min, MAX(time) as Max, TIMEDIFF(MAX(time), MIN(time)) as total
FROM records WHERE userid='1' GROUP BY DATE(time) 

结果IMAGE

所以我想变得像
总和= = 25:31:47

1 个答案:

答案 0 :(得分:1)

  • 您可以在Derived table中使用当前查询结果并计算总和。
  • 此外,您将需要先使用TIME_TO_SEC()函数将时间转换为秒,而在完成SUM之后,您将需要使用SEC_TO_TIME()函数将其重新转换为时间。

请尝试以下操作:

SELECT SEC_TO_TIME( SUM( TIME_TO_SEC(derived_t.total) ) ) AS total_time_diff
FROM 
(
 SELECT TIMEDIFF(MAX(time), MIN(time)) as total
 FROM records 
 WHERE userid='1' 
 GROUP BY DATE(time) 
) AS derived_t