sql - Not a Group by expression 错误 [连接表]

标签 sql database oracle oracle11g

当我尝试获取按不同主题名称和员工姓名分组的最大值列时,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/

相关文章:

arrays - 使用数组参数时出现递归 SQL Lvl 1 错误

c# - 调用 Oracle 存储过程。获取 'No Data Found' 异常

sql - Spark SQL : put the conditional count result into a new column

mysql - 嵌套 SQL,查找哪些论坛有特定类型的帖子

sql - Postgres 约束

mysql - e 标志和特殊字符在 mysql 中起什么作用?

sql - Oracle SQL - 在不知道列名的情况下选择列

php - 在 protected 页面上使用 SQL 编辑数据库中的文本

php - 在单独的 PHP 应用程序中使用 wordpress 数据

java - Android游戏分数int通过servlet添加到access数据库中