错误语句:SELECT
s.SID,
s.Sname,
AVG(a.score)
FROM
student s
LEFT JOIN sc a ON s.SID = a.SID
WHERE AVG(a.score) > 60
GROUP BY
s.SID
正确语句:
SELECT
s.SID,
s.Sname,
AVG(a.score)
FROM
student s
LEFT JOIN sc a ON s.SID = a.SID
GROUP BY
s.SID
HAVING(a.score) >60
原因:
where 子句的作用是对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。