参考自: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
本文详细解析了在SQL中创建视图时遇到的常见错误:当使用GROUP BY子句时,未在聚合函数或GROUP BY子句中包含所有SELECT列表中的列。通过一个具体的例子,展示了如何正确地使用GROUP BY,并解释了为什么需要这样做。同时,介绍了GROUP BY语法格式及如何配合聚合函数使用。

5万+

被折叠的 条评论
为什么被折叠?



