así que tengo un conjunto de resultados que se ve algo como esto:MySQL: Cómo SUM() un TIMEDIFF() en un grupo?
SELECT User_ID, StartTime, EndTime, TIMEDIFF(EndTime, StartTime) AS TimeDiff
FROM MyTable
------------------------------------------------------------------
| User_ID | StartTime | EndTime | TimeDiff |
------------------------------------------------------------------
| 1 | 2010-11-05 08:00:00 | 2010-11-05 09:00:00 | 01:00:00 |
------------------------------------------------------------------
| 1 | 2010-11-05 09:00:00 | 2010-11-05 10:00:00 | 01:00:00 |
------------------------------------------------------------------
| 2 | 2010-11-05 06:30:00 | 2010-11-05 07:00:00 | 00:30:00 |
------------------------------------------------------------------
| 2 | 2010-11-05 07:00:00 | 2010-11-05 09:00:00 | 02:00:00 |
------------------------------------------------------------------
| 2 | 2010-11-05 09:00:00 | 2010-11-05 10:00:00 | 01:00:00 |
------------------------------------------------------------------
Ahora necesidad de agrupar los resultados por User_ID
SUM()
y TIMEDIFF. Si agrego una cláusula GROUP BY
, no es SUM()
el TimeDiff (y no lo esperaría). ¿Cómo puedo SUM()
los TimeDiffs para cada usuario?
Maldita sea, debería haber sabido sobre 'TIME_TO_SEC' antes, yo y mi kludgy' CONCAT's con fecha aleatoria .... +1 para ti! – Wrikken
@Wrikken: las marcas de tiempo epoch no funcionaban tan bien, así que tuve que improvisar :) –
lo siento, debería haber sido más específico. Los tiempos de Inicio/Fin son en realidad fechas. ¿Eso cambia tu respuesta? – Andrew