数据库sql语句多表连接查询+group by分组的使用

参考自:https://blog.csdn.net/fly_fly_fly_pig/article/details/81325116

平时用sql查询经常遇到的问题,这次搜到了一个博主的文章,解决了问题。但是其中的深层原因还没有想清楚,本文需要完善

更正前

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

那个MAX聚合函数,也可以用MIN函数

猜你喜欢

转载自blog.csdn.net/Alen666/article/details/83628382