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

异常的邮件概率

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

个人比较喜欢用子函数,这样逻辑比较顺

select e.date,
case when e.type = 'completed' then 0 else 1 end c
from email e join user u on e.send_id = u.id
join user u1 on e.receive_id = u1.id
where u.is_blacklist = 0 and u1.is_blacklist = 0

第一次做的时候忘记不光发件人要是正常用户,收件人也得是正常用户,导致测试时候正确,提交就错误了 所以要做两次表连接

select a.date,  round(sum(a.c),3)/count(a.c) p
from( select e.date,
case when e.type = 'completed' then 0 else 1 end c
from email e join user u on e.send_id = u.id
join user u1 on e.receive_id = u1.id
where u.is_blacklist = 0 and u1.is_blacklist = 0 ) a
group by a.date
全部评论

相关推荐

点赞 评论 收藏
分享
AAA专业长城贴瓷砖刘大爷:这样的简历我会直接丢进垃圾桶,花里胡哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务