用sql,查询出班级表,需要显示各班级各科低于年级平均分的人数,求大神

班级表

SELECT
	classno,
	course,
	avgg,
	count( studentno ) AS shuliang 
FROM
	(
	SELECT
		a.classno,
		a.course,
		a.gradee,
		a.studentno,
		p.avgg 
	FROM
		class a
		JOIN ( SELECT avg( gradee ) AS avgg, classno, course FROM class b GROUP BY course, classno ) p ON a.classno = p.classno 
		AND a.course = p.course 
	) m 
GROUP BY
	course,
	gradee 
having
	gradee < avgg

真够复杂的

select count(1)as shuliang,classno,course
from tableName
where grade < avg(grade)
group by classnno,course

tableName改一下,你试试

。。。你这个,

select count(1)as shuliang,classno,course
from class a

where gradee < (select avg(gradee) from class group by classno,course)

你测一下,我在多弄几组数据测一测