这道题目要求我们计算每个岗位的平均分数,我们要做的事情如下:

1. 确定总体问题

我们需要计算每个岗位的平均分数,并按平均分数降序排列,结果保留小数点后三位。

2. 分析关键问题

  • 计算平均分数:使用AVG函数计算每个岗位的平均分数。
  • 保留小数点后三位:使用ROUND函数保留小数点后三位。
  • 排序输出:按平均分数降序排列输出结果。

3. 解决每个关键问题的代码及讲解

步骤1:计算平均分数

我们使用AVG函数计算每个岗位的平均分数:

select
    job,
    round(avg(score), 3) as avg
...
group by
    job
  • AVG(score): 计算每个岗位的平均分数。
  • GROUP BY job: 按岗位分组计算平均分数。
步骤2:保留小数点后三位

我们使用ROUND函数保留小数点后三位:

round(avg(score), 3) as avg
  • ROUND(AVG(score), 3): 保留小数点后三位。
步骤3:排序输出

我们按平均分数降序排列输出结果:

order by
    round(avg(score), 3) desc
  • ORDER BY ROUND(AVG(score), 3) DESC: 按平均分数降序排列。

完整代码

select
    job,
    round(avg(score), 3) as avg
from
    grade
group by
    job
order by
    round(avg(score), 3) desc;