题解 | 异常的邮件概率

异常的邮件概率

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

SELECT
    e.date AS email_date,  -- 规范字段名,避免关键字冲突
    ROUND(
        SUM(CASE WHEN e.type = 'completed' THEN 0 ELSE 1 END)  -- 未完成邮件数
        / NULLIF(COUNT(e.id), 0),  -- 总邮件数(避免除以零)
        3
    ) AS p  -- 未完成邮件占比(保留3位小数)
FROM
    email e
-- 关联发送方用户表,筛选非黑名单发送方
JOIN user u_send ON e.send_id = u_send.id AND u_send.is_blacklist = 0
-- 关联接收方用户表,筛选非黑名单接收方
JOIN user u1 ON e.receive_id = u1.id AND u1.is_blacklist = 0
GROUP BY
    e.date  -- 按日期分组(与SELECT中的日期字段一致)
ORDER BY
    e.date ASC;  -- 按日期升序排序

JOIN user u_send ON e.send_id = u_send.id AND u_send.is_blacklist = 0

user表连接email表

JOIN user u1 ON e.receive_id = u1.id AND u1.is_blacklist = 0

user表别名 u1 连接email表 (避免字段名冲突)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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