题解 | #分别满足两个活动的人#
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(时间的一半嘛)
查看9道真题和解析