【d57】【sql】1661. 每台机器的进程平均运行时间

时间:2024-10-02 07:53:16

思路

一方面考察自连接,另一方面考察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;

记录

总结