为什么我收到ORA-00937错误?

tra*_*ama 1 sql oracle sqlplus

这是我的oracle查询:

SELECT      DISTINCT Student.student_id, student_name, SUM(credit)
FROM        Student, Class, Enrolls
WHERE       Student.student_id = Enrolls.student_id
AND         Class.schedule_num = Enrolls.schedule_num
AND         Class.semester = Enrolls.semester
AND         grade != 'F'
AND         grade IS NOT null
ORDER BY    student_id ASC;
Run Code Online (Sandbox Code Playgroud)

查询工作正常,直到我添加SUM(credit).之后我得到:

ORA-00937: not a single-group group function
Run Code Online (Sandbox Code Playgroud)

请帮忙,谢谢.

Lin*_*ger 6

您似乎缺少GROUP BYSQL语句中的子句.它应该看起来像:

SELECT      Student.student_id, student_name, SUM(credit)
FROM        Student, Class, Enrolls
WHERE       Student.student_id = Enrolls.student_id
AND         Class.schedule_num = Enrolls.schedule_num
AND         Class.semester = Enrolls.semester
AND         grade != 'F'
AND         grade IS NOT null
GROUP BY    Student.student_id, student_name
ORDER BY    student_id ASC;
Run Code Online (Sandbox Code Playgroud)