ORA-00979:不是Oracle的GROUP BY表达式,但在子句差异的上下文中
发布时间:2021-01-29 12:13:50 所属栏目:站长百科 来源:网络整理
导读:我在Oracle中运行了这个查询 select studentid,attndmarkfrom attendance_master m,attendance_detail dwhere m.attnid = d.attendidgroup by studentid 并得到错误: ORA-00979: not a GROUP BY expression 错误很好,我知道select子句中列列表的问题.但类似
我在Oracle中运行了这个查询 select studentid,attndmark from attendance_master m,attendance_detail d where m.attnid = d.attendid group by studentid 并得到错误:
错误很好,我知道select子句中列列表的问题.但类似的查询在MySQL中是有效的. SELECT aff.akey,username FROM `affiliates` aff,affstats ast WHERE aff.akey = ast.akey group by aff.akey 我需要一个可以在RDBMS Oracle / Mysql和MSSQL上运行的查询技巧. 可能是什么伎俩? 解决方法MySQL是错误的,因为它不符合SQL标准(在这种情况下甚至是常识).它允许SELECT中的列不是聚合函数的参数且不在GROUP BY中.文档明确指出值来自“不确定”行.顺便说一下,你应该学习正确的显式JOIN语法.查询可以写成: SELECT aff.akey,MAX(username) FROM affiliates aff JOIN affstats ast ON aff.akey=ast.akey GROUP BY aff.akey; 这将适用于两个数据库. (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐