当我尝试获取按不同主题名称和职员名称分组的值列的最大值时,按分组不起作用。
第一个大括号内的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
答案 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