Mysql 非法组函数SQL

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

我正在做这个任务,我需要计算每个学生的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.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连接语法所取代!而且不鼓励使用它