Użyj:
SELECT t.user_id,
SEC_TO_TIME(SUM(TIME_TO_SEC(t.endtime) - TIME_TO_SEC(t.starttime))) AS timediff
FROM MYTABLE t
GROUP BY t.user_id
Kroki:
- Użyj TIME_TO_SEC przekonwertować CZAS na sekundy dla operacji matematycznych
- Podsumuj różnicę
- Użyj SEC_TO_TIME przekonwertować sekundy z powrotem na CZAS
Na podstawie przykładowych danych sugerowałbym tylko:
SELECT t.user_id,
TIMEDIFF(MIN(t.startdate), MAX(t.enddate)) AS timediff
FROM MYTABLE t
GROUP BY t.user_id