检索聚合函数受条件约束的记录

时间:2016-11-16 16:55:07

标签: mysql database database-design

我想检索avg小于0.8的学生的子代码和usn。 我试过这样的东西,但它没有用。

SELECT schedule.subcode,attendance.usn,   
FROM schedule,attendance 
where schedule.sched_id=attendance.sched_id  
having avg(attendance.ispresent)<0.8
group by attendance.usn
order by attendance.usn;

如何检索它?

1 个答案:

答案 0 :(得分:0)

很难说出你在问什么,但我注意到的第一件事就是你的子句需要在你的小组之后,并且子代码需要包含在group by语句中。此外,使用内部联接而不是逗号。试试这个:

SELECT schedule.subcode, attendance.usn
FROM schedule
INNER JOIN attendance 
ON schedule.sched_id=attendance.sched_id  
GROUP BY schedule.subcode, attendance.usn
HAVING avg(attendance.ispresent)<0.8
ORDER BY attendance.usn;