編集:私は解決策を見つけたと思いますが、誰かがそれを行うためのより良い方法を持っているかどうかを知りたいと思っています。「GROUPBYname」を追加すると、正しい出力が生成されました。
私はこのようなテーブルを持っています:
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
私は2つのことを行う方法を学ぼうとしています:
1)行のCOUNTと合計実行時間の合計を使用して個別の名前を一覧表示します
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)