首先用not in排除在黑名单的邮件, 然后用case 计算不成功的邮件数, 最后排序
select date, round(sum(case type when 'completed' then 0 else 1 end) / count(type), 3) as p
from email
where send_id not in (select id from user where is_blacklist = 1)
and receive_id not in (select id from user where is_blacklist = 1)
group by date
order by date;