sql 关于子查询一些机制的疑问

以下语句
单独查子查询里语音是不行的 应为表B是在外面的语句声明的

但是为什么放在子查询里用where就可以 而且还能自动分组 得到我想要的数据
分组是在什么时候弄好的?明明都没有写group by啊

select *
from student_course B
where B.score <(
select avg(score)
from student_course C
where B.cno =C.cno
)

嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。   嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子查询中