题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/active-businesses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
本人思考:
– 1、先按事件类型event_type分组,求出每个事件的平均发生次数avg_event,构成临时表temp1
– 2、将events表与temp1表内连接,条件是e.event_type = temp1.event_type,使用where筛选某个事件类型的发生次数>此事件类型在所有业务中的平均发生次数,筛选出所有满足>平均条件的业务id和某个事件类型event_type
– 3、最后使用业务id来分组,如果满足该业务id下由2个以上的事件类型event_type,即为活跃业务
select business_id
from events as e inner join
(select event_type ,avg(occurences) as avg_event
from events
group by event_type)temp1
on e.event_type = temp1.event_type
where occurences> temp1.avg_event
group by e.business_id
having count(e.event_type)>=2