Così ho una serie di risultati che sembra qualcosa di simile:MySQL: Come SUM() un TIMEDIFF() su un gruppo?
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 |
------------------------------------------------------------------
Ora ho bisogno di raggruppare i risultati per User_ID
e SUM()
TimeDiff. Se aggiungo una clausola GROUP BY
, non è SUM()
TimeDiff (e non me lo aspetterei). Come posso SUM()
TimeDiffs per ciascun utente?
Dannazione, avrebbe dovuto conosciuto circa 'TIME_TO_SEC' in precedenza, io e la mia kludgy' CONCAT' con date a caso .... +1 per te! – Wrikken
@Wrikken: i timestamp di epoca non funzionavano così bene, quindi ho dovuto improvvisare :) –
scusate, avrei dovuto essere più specifico. Le ore di inizio/fine sono in realtà datate. Questo cambia la tua risposta? – Andrew