1. 操作系统版本及内核发行版本:
CentOS 7.6–3.10.0-693.el7.x86_64
2. 数据库版本及架构:
数据库架构 单机, 数据库版本为 Release 5.0 22.1.0 revision(28cd72e)
3. 问题描述:
Mysql应用迁移到SUNDB数据库后包含order by 子句的 select count(1) 查询语句报错
4. 原因:
SUNDB数据库 select count() 查询的order by 子句只能使用 select 子句中的 count() 或 alias(别名)
5. 错误代码:
SQL 错误 [16161] [42000]: not a single-group group function
6. 解决方案:
各数据库对于例句处理差异:
例句:select count(1) from a order by id;
SUCCESS : oracle, mysql
ERROR : postgreSQL, db2 , SUNDB
因为count(1)并不是id列,所以排序时出错是正确的,如果将count(1)指定为id alias就可以成功。
SUNDB数据库正确写法:
select count(1) from a order by count(1);
select count(1) from a order by 1;
select count(1) AS id from a order by id;
最后修改时间:2023-07-17 14:55:12
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




