sql - 不是 Group by 表达式错误 [连接表]
问题描述
当我试图获得与不同主题名称和员工姓名分组的最大值列时,分组不工作。
第一个大括号内的选择查询工作正常,我从中获得了所需的输出。但是,我无法为每个员工获得最大价值,因此受到影响。
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;
推荐阅读
- jquery - 加载列表数据时加载微调器
- mysql - 无法设置关系 phpmyadmin
- asp.net - 使用 LINQ 的动态过滤器(EntityFramework)
- macos - 如何在 MacOS 10.15 中正确使用 EndpointSecurity API?
- bash - 系统中最大的文件并在 unix 中移动
- node.js - 使用串行端口启动电子脚本时出现符号查找错误
- javascript - 鼠标悬停事件处理程序在 d3 中不起作用?
- node.js - AWS Lambda - Runtime.ImportModuleError:错误:找不到模块“jmespath”
- roku - 如何在 Roku 中使用圆形图像视图..?
- java - Web 服务如何从 url Web 服务获取 wsdl