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

参考自: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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值