消息 8120,级别 16,状态 1,第 1 行
选择列表中的列 'Student.Sname' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
查询每个同学的学号、姓名、选课数
报错语句:
SELECT Homework.Sno,Sname,COUNT(*) AS Num
FROM Homework,Student
WHERE Homework.Sno=Student.Sno
GROUP BY Homework.Sno
正确语句:
SELECT Homework.Sno,Sname,COUNT(*) AS Num
FROM Homework,Student
WHERE Homework.Sno=Student.Sno
GROUP BY Homework.Sno,Sname
如果 SELECT 后包含聚合函数,则 GROUP BY 将计算每个组的汇总值
指定 GROUP BY 时,选择列表中任何非聚合表达式内的每个属性名都应包含在GROUP BY列表中
也就是说,GROUP BY表达式必须与选择列表表达式完全匹配