0
編輯:我想我找到了解決方案,但我仍然有興趣知道是否有人有更好的方法來做到這一點。添加「GROUP BY名稱」產生正確的輸出。mysql在單個表格中總結多組數據
我有這樣的一個表:
Name StartDate EndDate
name0 2012-05-18 20:00:00 2012-05-18 20:00:01
name1 2012-05-18 20:00:00 2012-05-18 20:00:05
name0 2012-05-18 20:00:00 2012-05-18 20:00:01
name3 2012-05-18 20:00:00 2012-05-18 20:00:03
name4 2012-05-18 20:00:00 2012-05-18 20:00:07
name3 2012-05-18 20:00:00 2012-05-18 20:00:03
name8 2012-05-18 20:00:00 2012-05-18 20:00:12
name5 2012-05-18 20:00:00 2012-05-18 20:00:11
name1 2012-05-18 20:00:00 2012-05-18 20:00:05
我想學習如何做兩件事情:
1)列出不同的名字與他們的行數和的SUM他們的總運行時間
Name Count TotalRunTime
name0 2 2
name1 2 10
name3 2 6
name4 1 7
name5 1 11
name8 1 12
我創建了以下查詢以嘗試一次執行這兩個操作。它適用於單一名稱,但我無法弄清楚如何使它在表格中的不同名稱列表上「迭代」。
SELECT
Name,
SUM(TIME_TO_SEC(TIMEDIFF(enddate,startdate))) TotalRunTime,
COUNT(*) as TotalJobs
FROM results
WHERE name='name0';
主要生產:
+-------+-------------+-----------+
| Name |TotalRunTime | TotalJobs |
+-------+-------------+-----------+
| name0 | 1023491 | 46 |
+-------+-------------+-----------+
1 row in set (0.00 sec)
但我想要的是:
+-------+-------------+-----------+
| Name |TotalRunTime | TotalJobs |
+-------+-------------+-----------+
| name0 | 1023491 | 46 |
| name1 | 971621 | 35 |
| name3 | 108843 | 22 |
| ... | ... | ... |
+-------+-------------+-----------+
<N> rows in set (0.00 sec)
GROUP BY是正確的方法來做到這一點。 –