Mysql 非法组函数SQL
我正在做这个任务,我需要计算每个学生的CGPA,以及分数*学分/总学分的公式Mysql 非法组函数SQL,mysql,Mysql,我正在做这个任务,我需要计算每个学生的CGPA,以及分数*学分/总学分的公式 select round(sum((grade.grade*course.credits)/count(course.courseno)),1), student.studentNo from course, grade, student, offering where student.studentno = grade.studentno and course.cour
select
round(sum((grade.grade*course.credits)/count(course.courseno)),1),
student.studentNo
from
course, grade, student, offering
where
student.studentno = grade.studentno
and course.courseno = offering.courseno
and offering.offerno = grade.offerno
group by
student.studentNo;
我有点无法继续,因为我不知道这是怎么回事
编辑:所以,正如你们所指出的,我做了一些改变,但我仍然有麻烦
select grade.studentno,
(select sum (t)
from(select(grade*credits)/count(offering.courseno)
from student s2, grade g2, offering o2, course c2
where s2.studentno=g2.studentno
and g2.offerno=o2.offerno
and o2.courseno=c2.courseno
group by g2.studentno
) t
)
from student, grade, offering, course
where student.studentno=grade.studentno
and grade.offerno=offering.offerno
and offering.courseno=course.courseno
group by grade.studentno;
错误
代码1054:“字段列表”中的未知列offering.courseno
它无法识别“count”子查询中的聚合。不允许在同一个SELECT中嵌套聚合函数,例如SUMX/COUNTY。当需要嵌套时,可以使用子查询执行一个,然后使用外部查询执行另一个;这通常是必需的,因为此类场景通常需要不同的分组标准。不允许在同一个SELECT中嵌套聚合函数,例如SUMX/COUNTY。当需要嵌套时,可以使用子查询执行一个,然后使用外部查询执行另一个;这通常是必需的,因为此类场景通常需要不同的分组标准。除了模式外,不允许在同一选择中嵌套聚合函数。可以使用子查询选择与此类似的两列
select round(sum((grade.grade*course.credits)/count(course.courseno)),1) from (select student.studentNo from course, grade, student, offering where student.studentno=grade.studentno and course.courseno=offering.courseno and offering.offerno=grade.offerno) group by student.studentNo;
除模式外,不允许在同一选择中嵌套聚合函数。可以使用子查询选择与此类似的两列
select round(sum((grade.grade*course.credits)/count(course.courseno)),1) from (select student.studentNo from course, grade, student, offering where student.studentno=grade.studentno and course.courseno=offering.courseno and offering.offerno=grade.offerno) group by student.studentNo;
好的,我试着做了一些改变,但仍然不起作用:选择grade.studentno,从selectgrade*credits/countoffing.courseno从学生s2,年级g2,提供o2,课程c2,其中s2.studentno=g2.studentno和g2.offerno=o2.offerno和o2.courseno=c2.courseno按g2分组。studentno来自学生、年级、课程,学生所在的课程。studentno=grade.studentno和grade.offerno=offering.offerno和offering.courseno=course.courseno按年级分组。studentno;好的,我试着做了一些改变,但仍然不起作用:选择grade.studentno,从selectgrade*credits/countoffing.courseno从学生s2,年级g2,提供o2,课程c2,其中s2.studentno=g2.studentno和g2.offerno=o2.offerno和o2.courseno=c2.courseno按g2分组。studentno来自学生、年级、课程,学生所在的课程。studentno=grade.studentno和grade.offerno=offering.offerno和offering.courseno=course.courseno按年级分组。studentno;你就不能用AVGgrade.grade*course.credits吗25年前,在ANSI-92 SQL标准中,旧样式的逗号分隔表列表样式被正确的ANSI连接语法所取代!它的使用是不鼓励的,你不就用AVGgrade.grade*course.credits吗25年前,在ANSI-92 SQL标准中,旧样式的逗号分隔表列表样式被正确的ANSI连接语法所取代!而且不鼓励使用它