select s2.s_name,ifnull(round(avg(s1.s_score),1),0) as avg_score from score s1 inner join student s2 on s1.s_id = s2.s_id group by s1.s_id,s2.s_name where avg_score is null;这句sql中的错误
时间: 2023-06-12 15:07:14 浏览: 148
mysql数据库转瀚高数据库所需要的函数列表
5星 · 资源好评率100%
这句 SQL 语句中的错误是 `where` 关键字位置不正确,应该将 `where` 关键字放在 `inner join` 之后的条件中,正确的 SQL 语句如下:
```sql
select s2.s_name,ifnull(round(avg(s1.s_score),1),0) as avg_score
from score s1
inner join student s2 on s1.s_id = s2.s_id
where avg_score is null
group by s1.s_id,s2.s_name;
```
在这个 SQL 语句中,我们使用了 `inner join` 将成绩表 `score` 中的学生 ID 与学生表 `student` 中的学生 ID 进行关联,然后使用 `group by` 对结果进行分组,最后使用 `ifnull` 函数将平均分为空的学生设置为 0。
阅读全文