题解 | #异常的邮件概率#

异常的邮件概率

http://www.nowcoder.com/practice/d6dd656483b545159d3aa89b4c26004e

首先在数据排除黑名单客户,在user表中找到黑名单

SELECT u.`id` from `user` u where is_blacklist=1

然后在date表中的where条件下排除,黑名单有可能是多个用户

where e.send_id !=(SELECT u.`id` from `user` u where is_blacklist=1) 
and   e.receive_id !=(SELECT u.`id` from `user` u where is_blacklist=1) 

按日期排列

group by e.date

用avg 和 case when then else 计算每组的平均值,即失败率,失败为1,成功为0。
失败率=sum()/count()正好和avg 一样

select e.date, 
       round(avg(case when e.type = 'completed' then 0
                      else 1 end),3)
from email e
where e.send_id !=(SELECT u.`id` from `user` u where is_blacklist=1) 
and   e.receive_id !=(SELECT u.`id` from `user` u where is_blacklist=1)
group by e.date
全部评论

相关推荐

10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
躺尸修仙中:因为很多92的也去卷中小厂,反正投递简历不要钱,面试不要钱,时间冲突就推,不冲突就面试积累经验
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务