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

分别满足两个活动的人

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

-- 先统计活动一的人员,再统计活动二,再合并
-- 活动1人员,每次试卷得分都能到85分的人,根据人分组,用最低分
-- 活动2人员,至少有一次用了一半时间就完成高难度试卷且分数大于80的人的id,关联,过滤,去重

SELECT 
    uid, 'activity1'
FROM
    exam_record
GROUP BY uid
HAVING MIN(score) >= 85 
UNION ALL 
SELECT DISTINCT
    (uid) uid, 'activity2'
FROM
    exam_record a
        INNER JOIN
    examination_info b ON a.exam_id = b.exam_id
WHERE
    b.difficulty = 'hard'
        AND TIME_TO_SEC(a.submit_time) - TIME_TO_SEC(a.start_time) <= b.duration * 30
        AND a.score > 80
ORDER BY uid;

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务