题解 | #分别满足两个活动的人#

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

首先根据题目含义是要查询满足activity1 和满足activity2的人,这里我使用的是union all 分别查询满足这两个条件的人,再连接起来  代码如下:
select e.uid , 'activity1' as activity  from exam_record e 
left join examination_info ei on ei.exam_id=e.exam_id
where year(e.submit_time)=2021
group by e.uid having min(e.score)>=85 
union all 
select e.uid ,'activity2' as activity from exam_record e 
left join examination_info ei on ei.exam_id=e.exam_id
where year(e.submit_time)=2021 and ei.difficulty='hard' 
and timestampdiff(second,start_time,submit_time)<=ei.duration*30 and score>80
group by e.uid
order by uid
在求取满足activity2条件的人时,我们可以使用timestampdiff()函数,求取提交时间和开始做题时间的间隔,这里我用了秒作为单位,因此duration需要乘以30(时间的一半嘛)
全部评论

相关推荐

03-19 09:58
河海大学 Java
最喜欢春天的奇亚籽很...:同学,是小红书不是小哄书,一眼就能看到的错误
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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