s.学号,姓名,成绩是什么意思?是一张表还是多个?

img


avg我知道,看答案第五题,麻烦解释下语法,

img


蟹蟹

  • 这个题目里面,许多东西都简写了,先不管为什么简写,先说一下意思:
  1. 学生表:S(学号(C,4),.....
    这个意思是 有一个表,表名是S,其中有字段【学号】,这个字段的类型是C(字符型),长度是4
    其他的表和字段的表述都按照这个理解来
  2. 在答案中,AVG取平均值你已经清楚了,书籍中的排版有点问题,【S. 学号】中间有一个空格,这个是不应该出现的,不过不影响理解,而【姓名】和【成绩】为什么没有加S. 或者SC. 呢,是因为这两个字段在要关联的两个表中是唯一存在的,数据库自身是可以识别到字段所在的表的。
  3. group by 1 在许多数据库方言中是一个常见的写法,意思是对select 关键字后面排序的第一个字段或者字段表达式进行分组 ,这个语句里面的意思就是group by S.学号 ,ORDER BY 3 DESC 同理,对平均成绩从大到小排序。
  4. having count(S.学号) >=5 是聚合分组语句中对聚合函数进行条件筛选的写法,目的是在语句的group by基础上,对指定的函数结果进行类似where的过滤,必须搭配group by 一起使用。

希望可以帮助到你,有什么不理解的可以直接回复该解答。

不知道你这个group by 1 里的1是啥 order by 3里的3是课程号?

学生表和成绩表用学号关联根据1(啥玩意,理解成学号了) 分组,取选课大于等于5门的学生,根据3倒序排列

题目的含义应该是取选课超过5门的学生的平均成绩倒序排列把