题解 | 每个题目和每份试卷被作答的人数和次数

每个题目和每份试卷被作答的人数和次数

https://www.nowcoder.com/practice/203d0aed8928429a8978185d9a03babc

select
    *
from
    (
        select
            exam_id as tid,
            count(distinct uid) as uv,
            count(uid) as pv
        from
            exam_record
        group by
            exam_id
        order by
            uv desc,
            pv desc
    ) t1
union
select
    *
from
    (
        select
            question_id as tid,
            count(distinct uid) as uv,
            count(uid) as pv
        from
            practice_record
        where
            submit_time is not null
        group by
            question_id
        order by
            uv desc,
            pv desc
    ) t2

这个题目提供了一个思路,就是由于union本身对排序的时候,只能在union的最后使用一次order排序,因此如果想针对子查询分别进行排序的话,那么就可以进行一次查询并完成排序后,作为数据源再反给外层查询,然后再进行union

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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