思路
一方面考察自连接,另一方面考察group by
这里主要说明 group by 用法:
1.在 SQL 查询中,`GROUP BY` 子句用于将结果集中的行分组,目的通常就是 对每个组应用聚合函数(如 `SUM()`, `AVG()`, `MAX()`, `MIN()`, `COUNT()` 等)。
用group by 分组后 ,每组只会返回一行,
过程是:分组后,通过聚合函数 对这个分组 进行运算,然后作为 这个分组的代表,返回一行
注意:::查询的字段为聚合函数和分组字段,查询其他字段无任何意义
所以sql一般是:select 聚合函数 ...group by
代码
# Write your MySQL query statement below、
select a1.machine_id,round(avg(a2.timestamp-a1.timestamp),3) processing_time from Activity a1 join Activity a2 on a1.machine_id=a2.machine_id and a1.process_id=a2.process_id
and a1.activity_type='start'and a2.activity_type='end' group by a1.machine_id;