SQL组错误ORA-00979

时间:2014-10-28 14:56:01

标签: sql oracle10g ora-00979

我正在尝试提供此查询:

select s_name, course from Student group by course;

但我收到错误(ORA-00979不是GROUP BY EXPRESSION)。

我想列出同一课程中所有学生的姓名。 还有另一种方法吗?如果没有,实现此查询的正确方法是什么?如果有人能给我所需的确切代码,我将不胜感激。

2 个答案:

答案 0 :(得分:2)

一个变体(Oracle 11g):

select course, listagg(s_name, ', ') within group (order by s_name) 
 from student
group by course; 

Oracle 10g(未记录的秘密函数 wm_concat

select course, wm_concat(s_name)
 from student
group by course; 

答案 1 :(得分:1)

对于你想要的,你不应该使用GROUP BY。 GROUP BY的目的是总结每组的信息。

由于您希望每门课程都有详细信息,因此您应该使用ORDER BY来确保您的输出只是与同一课程中的学生一起排序。

select  s_name, course
from    Student
order by course

有关GROUP BY的用途示例,请尝试以下操作:

select  course, COUNT(*) as NumStudents
from    Student
group by course
相关问题