题解 | 每个题目和每份试卷被作答的人数和次数
每个题目和每份试卷被作答的人数和次数
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