Tak Mam zestaw wyników, który wygląda mniej więcej tak:MySQL: Jak SUM() a TIMEDIFF() w grupie?
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 |
------------------------------------------------------------------
teraz muszę grupie wyniki według User_ID
i SUM()
TimeDiff. Jeśli dodaję klauzulę GROUP BY
, to nie będzie to SUM()
TimeDiff (i nie oczekiwałbym tego). Jak mogę SUM()
TimeDiffs dla każdego użytkownika?
Cholera, powinienem wiedzieć wcześniej o 'TIME_TO_SEC', ja i moja kludgy' CONCAT's z losową datą .... +1 dla Ciebie! – Wrikken
@Wrikken: znaczniki czasu epoki nie działały tak dobrze, więc musiałem improwizować :) –
Przepraszam, powinienem być bardziej konkretny. Czasy rozpoczęcia/zakończenia są w rzeczywistości datami. Czy to zmienia twoją odpowiedź? – Andrew