参考自:https://blog.csdn.net/fly_fly_fly_pig/article/details/81325116
更正前
CREATE VIEW V_AVG_S_G
AS
SELECT student.stname ,COUNT(*) AS '选课门数',AVG(score.grade) AS '平均分'
FROM score,student
WHERE score.stno = student.stno
GROUP BY score.stno
报错:消息 8120,级别 16,状态 1,过程 V_AVG_S_G,行 3 [批起始行 0]
选择列表中的列 'student.stname' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
更正后
CREATE VIEW V_AVG_S_G
AS
SELECT MAX(student.stname) AS '学生名',COUNT(*) AS '选课门数',AVG(score.grade) AS '平均分'
FROM score,student
WHERE score.stno = student.stno
GROUP BY score.stno
原因
使用GROUP BY时需要配合聚合函数使用,以对值进行分组,其中MIN和MAX两个函数都可以作用于文本,以获得按字母顺序排列的最高或最低值。
GROUP BY语法格式
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name