# 1、筛选合格的配送员
with t1 as (
select
dr.staff_id
,sum(is_complaint)/count(distinct record_id) as c_rate
from delivery_records dr
left join delivery_staff ds
on dr.staff_id = ds.staff_id
where average_speed > 20
group by dr.staff_id
)
select
weather_type
,round(avg(delivery_time ), 2) as average_delivery_time
,count(*) as delivery_count
from delivery_records ds
left join weather_conditions w
on ds.weather_id = w.weather_id
where ds.staff_id in (
select staff_id from t1 where c_rate < 0.5
)
group by ds.weather_id
order by weather_type
;