IF选择两个表 | #根据指定记录是否存在输出不同情况#

根据指定记录是否存在输出不同情况

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

with t1 as
(select u.uid uid, sum(case when start_time and submit_time is null then 1 else 0 end) incomplete_cnt, round(sum(case when start_time and submit_time is null then 1 else 0 end)/count(1), 3) incomplete_rate
from user_info u left join exam_record e
on u.uid = e.uid
where level = 0
group by uid order by incomplete_rate)

, t2 as
(select e.uid uid, sum(case when start_time and submit_time is null then 1 else 0 end) incomplete_cnt, round(sum(case when start_time and submit_time is null then 1 else 0 end)/count(1), 3) incomplete_rate
from exam_record e left join user_info u
on e.uid = u.uid
group by uid order by incomplete_rate)

select if((select max(incomplete_cnt) from t1) > 2, t1.uid, t2.uid) uid, max(if((select max(incomplete_cnt) from t1) > 2, t1.incomplete_cnt, t2.incomplete_cnt)) incomplete_cnt, max(if((select max(incomplete_cnt) from t1) > 2, t1.incomplete_rate, t2.incomplete_rate)) incomplete_rate
from t1, t2
group by uid order by incomplete_rate;

由于分组的数据相同,此处使用MAX、MIN、AVG等价。

全部评论

相关推荐

点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-14 12:29
门头沟学院 Java
后端岗,实习三周感觉有点想跑路了,担心秋招被拉黑,有没有佬是字节HR知道情况的
从零开始的转码生活:你实习三周都想跑路,将来拿到offer真的愿意在这干十几二十年吗
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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