select
d.university,
d.difficult_level,
round(count(d.question_id)/count(distinct device_id),4) AS avg_answer_cnt
from
(
select
a.university,
a.device_id,
b.question_id,
c.difficult_level
from
user_profile AS a,
question_practice_detail AS b,
question_detail AS c
where
a.device_id = b.device_id
and b.question_id = c.question_id
)AS d
group by
d.university,
difficult_level
我采用双重嵌套来解题。
内层嵌套负责给出university、device_id、question_id、difficult_level的信息,如下表所示
外层嵌套负责整合新表信息,按 university 和 difficult_level 分组。计算每个组的问题数量与设备数量的比值:COUNT(d.question_id):统计每个组中的问题数量,COUNT(DISTINCT d.device_id):统计每个组中的不同设备数量,ROUND(COUNT(d.question_id) / COUNT(DISTINCT d.device_id), 4):计算比值并四舍五入保留 4 位小数。
最终结果包含以下字段:university,difficult_level,avg_answer_cnt:问题数量与设备数量的比值。

京公网安备 11010502036488号