m0_56539928 2022-05-09 17:31 采纳率: 100%
浏览 23
已结题

SQL中这个group 为什么要加ssumc啊

视图vsumc,包含每个选了课的学生获得的学分(成绩及格才能得学分)。两列分别为学号和总学分(列名:ssumc)。使用vsumc视图,查询平均分大于等于65分的学生的学号,平均分(列名:savg),总学分(列名:ssumc)。
正确答案是select vsumc.sno,avg(grade) as savg,ssumc
from SC
right join vsumc
ON SC.sno=vsumc.sno
group by vsumc.sno,ssumc
having avg(grade)>=65;
去掉group by 中的ssumc就显示错误,为什么呀,不是按照学号分类就可以了吗

  • 写回答

2条回答 默认 最新

  • 夜の雨 2022-05-09 17:49
    关注

    Group By中Select指定的字段限制
    select后的字段:
      要么就要包含在Group By语句的后面,作为分组的依据;
    要么就要被包含在聚合函数中。
     错误:

           SELECT name, salary FROM student GROUP BY name
           select 后的字段 salary 不在 group by 后面,所以salary无法显示全部值。
    

     正确1:

           SELECT name, salary FROM student GROUP BY name , salary     
           select 后的字段 name,salary 都包含在group by 后面,两个字段分组。
    

    正确 2:

        SELECT name,MAX(salary) FROM student GROUP BY name
           select 后的字段 salary 虽然不在 group by 后面,但是在聚合函数MAX(salary)里面,所以只会有一个值会正确。
    

    所以在你的select中查询了ssumc字段 group by 就需要去分组 不能去除
    推荐学习下group by用法
    https://www.cnblogs.com/YH-shjd-senvn/p/15890258.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月18日
  • 已采纳回答 5月10日
  • 修改了问题 5月9日
  • 创建了问题 5月9日

悬赏问题

  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在