SELECT
    uid,
    "activity1" activity
FROM
    exam_record e1
GROUP BY
    uid
HAVING
    min(score) >= 85
UNION
    SELECT DISTINCT
        uid,
        "activity2" activity
    FROM
        exam_record
    JOIN examination_info USING (exam_id)
    WHERE
        difficulty = "hard"
    AND TIMESTAMPDIFF(
        SECOND,
        start_time,
        submit_time
    ) * 2 <= duration * 60
    AND score >= 80
    ORDER BY
        uid ASC