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

异常的邮件概率

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

思路:1. 使用 **FROM subquery** ,让所有的筛选建立在正常用户

2. 使用 `OVER()` 窗口函数或者 `GROUP BY` 分组来经计算不同date的情况 -- OVER() 方法失败

3.使用IF或者CASE来计算

--后面时CASE时的运行代码,运行时要删掉 --所包含的行

SELECT 
    date,
    ROUND(SUM(
        IF(type = 'no_completed',1,0)
		--CASE WHEN type = 'no_completed' THEN 1 ELSE 0 END
		--运行的时候删掉这5,6 两行,不然会报错
		)/COUNT(type),3) AS p
FROM (
    SELECT e.*
    FROM email e 
    JOIN user us ON e.send_id = us.id
    JOIN user ur ON e.receive_id = ur.id
    WHERE us.is_blacklist = 0 
        AND ur.is_blacklist = 0
) AS t
GROUP BY date
ORDER BY date

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
07-01 23:23
郑州大学 Java
否极泰来来来来:牛客迟早有高三的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务