select
    university,
    difficult_level,
    count(qpd.device_id) / count(distinct qpd.device_id) as avg_answer_cnt
from
    user_profile u,
    question_practice_detail qpd,
    question_detail qd
where
    u.device_id = qpd.device_id
    and qpd.question_id = qd.question_id
group by
    u.university,
    qd.difficult_level;

ROUND(number, decimals)

  • number:这是你想要舍入的数值。它可以是一个列名,也可以是直接给出的数值。
  • decimals:这是你想要保留的小数位数。如果省略这个参数,或者将其设置为0,那么函数将返回最接近的整数。如果你想要舍入到小数点后特定的位数,那么你可以指定一个正整数。如果你想要对整数进行舍入(即舍入到最接近的10、100、1000等),那么你可以指定一个负整数。

上方代码应该修改成:

select
    university,
    difficult_level,
    round(count(qpd.device_id) / count(distinct qpd.device_id),4) as avg_answer_cnt
from
    user_profile u,
    question_practice_detail qpd,
    question_detail qd
where
    u.device_id = qpd.device_id
    and qpd.question_id = qd.question_id
group by
    u.university,
    qd.difficult_level;