当我尝试获取按不同主题名称和员工姓名分组的最大值列时,Group by 不起作用。
第一个大括号内的选择查询工作正常,我从中获得了所需的输出。但是,我无法从中获得每个员工的最大值(value)。
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
最佳答案
嵌套 () 的顺序似乎有误 并且您在 group by 中错过了一个未聚合的列
select t.staff_name, t.subject_name, max(t.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
) t
group by t.staff_name, t.subject_name;
关于sql - Not a Group by expression 错误 [连接表],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51214223/