我是sql的新手,并且从以下代码中遇到错误“ WHERE的参数必须为布尔型,而不是数字型”错误
select subject_no, subject_name, class_size from Subject
where (select AVG(mark) from Grades where mark > 75)
group by subject_no
order by subject_no asc
为了帮助理解这个问题,我想做的是列出平均分数小于75的主题
根据我的理解,尽管where参数将是布尔值,因为来自某个类的平均分数将高于或低于60,因此为true,否则为false,但非常感谢您提供任何纠正我的理解的帮助。
编辑!
使用相关子查询来查找avg(grade)<75的主题。GROUP BY
由于没有聚合函数,因此不需要,DISTINCT
而是使用它来删除重复项:
select distinct subject_no, subject_name, class_size
from Subject s
where (select AVG(mark) from grades g
where g.subject_no = s.subject_no) < 75
order by subject_no asc
注意,我还假设表中也有subject_no
列Grades
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句