不是按表达式分组[联接表]

时间:2018-07-06 16:13:56

标签: sql database oracle oracle11g

当我尝试获取按不同主题名称和职员名称分组的值列的最大值时,按分组不起作用。

第一个大括号内的select查询工作正常,我从中得到了所需的输出。但是,我无法从中获得最大的价值。

select  staff_name, subject_name, max(value) from 
(select Staff.staff_name, Subject.subject_name, Mark.value as value 
from ((staff inner join subject on Staff.staff_id=Subject.staff_id)
inner join Mark ON Mark.subject_id=Subject.subject_id) 
group by subject_name);

错误是:

ORA-00979: not a GROUP BY expression

2 个答案:

答案 0 :(得分:2)

似乎您对嵌套()的顺序有误 并且您错过了

分组中未聚合的列
dbClearResult

答案 1 :(得分:1)

看起来您只需要这个:

select st.staff_name, su.subject_name, max(mk.value) 
from   staff st
       join subject su
            on  su.staff_id = st.staff_id
       join mark mk
            on  mk.subject_id = su.subject_id
group by st.staff_name, su.subject_name
相关问题