oracle视图group by无效,ORA-00979:不是Oracle的GROUP BY表达式,但在子句差异的上下文中对MySQL无效...
我在Oracle中运行了这个查询
select studentid, attndmark
from attendance_master m,
attendance_detail d
where m.attnid = d.attendid
group by studentid
并得到错误:
ORA-00979: not a GROUP BY expression
错误很好,我知道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;
这将适用于两个数据库.
标签:mysql,database,sql,oracle,rdbms
来源: https://codeday.me/bug/20190611/1220978.html
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)