目录
环境
系统平台:中标麒麟(CPU龙芯)7
版本:4.3.4
对于GROUP BY聚合操作,如果在SELECT中的字段,没有在GROUP BY中出现,那么这个SQL是不合法的,但是在MySQL5.6版本中不会报错,GROUP BY以外的字段取分组中的第一条数据。
SELECT A, B, C, D, COUNT(*) FROM tablename GROUP BY A,B |
由于瀚高数据库严格遵守SQL标准,上面SQL语句执行报错,需要通过改写SQL语句的方式实现同样的功能。
详细信息
下面通过实例进行详细说明:
MySQL5.6的语句:
SELECT sid, sname, ssex, SUM(score) FROM students WHERE xxx GROUP BY ssex |
注:sid、sname在GROUP BY中没有出现
HGDB的解决方案:
方案一:
SELECT中存在,但是GROUP BY中没有的字段(sid、sname),有下面情况时,从SELECT中把多余的字段删除。
1) 这种字段在SQL语句中没有被使用。
2) 这种字段在后续代码中没有被使用。
3) 这种字段在画面上也没有被使用,也不显示。
注:这种字段从未被使用过,这种写法单纯是写错了的情况。
方案二:
更多解决方案请登录【瀚高技术支持平台】查看瀚高技术支持平台