Vì vậy, tôi đã có một tập hợp các kết quả mà trông giống như sau:MySQL: Cách SUM() một TIMEDIFF() trên một nhóm?
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 |
------------------------------------------------------------------
Bây giờ tôi cần phải nhóm kết quả theo User_ID
và SUM()
TimeDiff. Nếu tôi thêm mệnh đề GROUP BY
, nó không SUM()
TimeDiff (và tôi sẽ không mong đợi nó). Làm thế nào tôi có thể SUM()
TimeDiffs cho mỗi Người dùng?
Chết tiệt, lẽ ra nên biết về 'TIME_TO_SEC' trước đó, tôi và kludgy của tôi' CONCAT' với ngày ngẫu nhiên .... +1 cho bạn! – Wrikken
@Wrikken: dấu thời gian epoch không hoạt động tốt như vậy, vì vậy tôi đã phải ứng biến :) –
xin lỗi, tôi cần phải cụ thể hơn. Thời gian bắt đầu/kết thúc thực sự là datetimes. Điều đó có thay đổi câu trả lời của bạn không? – Andrew