leetcode 1126. 查询活跃业务

查询活跃的业务
题目分析:查询活跃的业务有两个条件,第一个是业务的某个事件类型的发生次数大于此事件类型在所有业务中的平均发生次数,第二个是该业务至少有两个这样的事件类型,那么该业务就可被看做是活跃业务。按照这个要求逐步筛选即可
先筛选第一个条件

select business_id,E.event_type from Events E inner join (
select event_type,sum(occurences)/count(*) ave_occ from Events group by event_type) F1 on E.event_type = F1.event_type and E.occurences > F1.ave_occ;

在第一个条件上筛选第二个条件

select business_id from 
(select business_id,E.event_type from Events E inner join (
select event_type,sum(occurences)/count(*) ave_occ from Events group by event_type) F1 on E.event_type = F1.event_type and E.occurences > F1.ave_occ)
 F2 group by business_id having count(*) >= 2;

提交结果如下:
leetcode 1126. 查询活跃业务_第1张图片
效率很烂,可以继续优化

你可能感兴趣的:(力扣数据库题)