达梦数据库SQL查询报错:不是 GROUP BY 表达式解决方法

1、前言

随着达梦数据库国产化率越来越高,很多如Oracle、Mysql、SQL Server逐步迁移到达梦数据库上来,但难免会有一些其它数据库独有的用法在达梦上会报错,但达梦数据库其实都有相应的解决办法,接下来我们来看一个比较常见的错误,以及如何处理,本文都会详细介绍。

2、问题描述

报错信息:
-4080: 第1 行附近出现错误:
不是 GROUP BY 表达式

**相信大家对这个错误一定不陌生。为何有此报错?达梦数据如何解决呢?下面我们来一探究竟**

3、达梦解决办法

3.1 复现报错

--咋们可以利用达梦数据库内置的员工表测试
select e.department_id,e.employee_name,sum(e.salary) from dmhr.employee e group by e.department_id;---------报错信息---------------
总共1个语句正依次执行...[执行语句1]:
select e.department_id,e.employee_name,sum(e.salary) from dmhr.employee e group by e.department_id;
执行失败(语句1)
-4080: 第1 行附近出现错误:
不是 GROUP BY 表达式1条语句执行失败

3.2 解决办法1:

##达梦支持灵活的处理方式,可以直接在查询中加hint参数。
select /*+ GROUP_OPT_FLAG(1)*/ e.department_id,e.employee_name,sum(e.salary) from dmhr.employee e group by e.department_id;101 马学铭 72424
102 程擎武 21592
103 郑吉群 129443
104 陈仙  75945
105 金纬  194399
201 李慧军 45299
202 常鹏程 20491
204 谢俊人 81014
301 苏国华 112344
..............

3.3 解决办法2:

##也可以修改dm.ini参数GROUP_OPT_FLAG=1,动态,会话级参数,不用重启数据库。
select para_name,para_value,file_value from v$dm_ini where para_name='GROUP_OPT_FLAG';
##sp_set_para_value(1,'GROUP_OPT_FLAG',1);
select e.department_id,e.employee_name,sum(e.salary) from dmhr.employee e group by e.department_id;101  马学铭 72424
102 程擎武 21592
103 郑吉群 129443
104 陈仙  75945
105 金纬  194399
201 李慧军 45299
202 常鹏程 20491
204 谢俊人 81014
301 苏国华 112344
...............

3.4 解决办法3:

达梦还可以配置兼容参数,COMPATIBLE_MODE=4,静态参数,需要重启数据库后生效!
sp_set_para_value(2,'COMPATIBLE_MODE',4);
select para_name,para_value,file_value from v$dm_ini where para_name='COMPATIBLE_MODE';!!注意修改后需要重启数据库!!select e.department_id,e.employee_name,sum(e.salary) from dmhr.employee e group by e.department_id;101    马学铭 72424
102 程擎武 21592
103 郑吉群 129443
104 陈仙  75945
105 金纬  194399
201 李慧军 45299
202 常鹏程 20491
204 谢俊人 81014
301 苏国华 112344
...............

COMPATIBLE_MODE参数解释:0: 不兼容1:兼容 SQL92 标准2: 部分兼容 ORACLE3: 部分兼容 MS SQL SERVER
4: 部分兼容 MYSQL
5:兼容 DM6
6: 部分兼容 TERADATA

4、GROUP BY注意事项

使用 GROUP BY 要注意以下问题:
1.在 GROUP BY 子句中的每一列必须明确地命名属于在 FROM 子句中命名的表的一列。分组列的数据类型不能是多媒体数据类型;
2.分组列不能为集函数表达式或者在 SELECT 子句中定义的别名;
3.当分组列值包含空值时,则空值作为一个独立组;
4.当分组列包含多个列名时,则按照 GROUP BY 子句中列出现的顺序进行分组;
5. GROUP BY 子句中至多可包含 255 个分组列; 6. ROLLUP\CUBE\GROUPING SETS 组合不能超过 9 个。

达梦技术社区:https://eco.dameng.com

达梦数据库SQL查询报错不是 GROUP BY 表达式解决方法相关推荐

  1. Python 技术篇-操作oracle数据库执行SQL语句报错,提示ORA-00911: 无效字符解决方法

    cursor.execute("select name from v$datafile;") 执行 sql 语句提示无效字符. 原因就是我加入了 ; 号. 改成 cursor.ex ...

  2. oracle 监听报错,Oracle EBS系统数据库监听报错TNS-12547、TNS-12560和TNS-00517解决方法...

    记得有一次Oracle EBS系统中止运行3小时,实在比较一次惨痛的教训,让我至今记忆犹新. 问题症状:用户反映提交的请求全部是红色错误 开始意为是并发管理"标准管理器"的问题,在 ...

  3. 数据库报错1166 - Incorrect column name 的解决方法

    数据库报错1166 - Incorrect column name 的解决方法:错误原因:字段里面有空格,删除空格即可.没了

  4. eclipse找不到java方法,Linux启动eclipse报错找不到java环境解决方法

    在Linux mint下,前几天还用得很好的的eclipse,今天开机不知为什么这样. Eclipse 3.6 在 linux mint 12 可以在终端顺利启动Eclipse,但是鼠标双击,或者用起 ...

  5. 【笔记】虚拟机用Xshell登陆报错“ssh服务器拒绝了密码”解决方法

    [笔记]虚拟机用Xshell登陆报错"ssh服务器拒绝了密码"解决方法 参考文章: (1)[笔记]虚拟机用Xshell登陆报错"ssh服务器拒绝了密码"解决方法 ...

  6. eclipse中同步代码PULL报错checkout conflict with files的解决方法

    eclipse中同步代码PULL报错checkout conflict with files的解决方法 参考文章: (1)eclipse中同步代码PULL报错checkout conflict wit ...

  7. 手机系统安装打印机服务器错误代码,OKI打印机报错?各型号代码故障解决方法...

    原标题:OKI打印机报错?各型号代码故障解决方法 这一期干货贴邀请大家一起看看OKI打印机常见报错代码↓↓↓ 1.报错代码 610/611/612/613 黄色/品红色/青色/黑色碳粉盒未安装 产生原 ...

  8. DeepFaceLab报错,CUDA driver is insufficient 解决方法!

    DeepFaceLab报错,CUDA driver is insufficient 解决方法! 参考文章: (1)DeepFaceLab报错,CUDA driver is insufficient 解 ...

  9. phpredis 报错 “Function Redis::setTimeout() is deprecated” 解决方法

    phpredis 报错 "Function Redis::setTimeout() is deprecated" 解决方法 参考文章: (1)phpredis 报错 "F ...

  10. Maven 手动安装JAR包到本地maven仓库后,但在项目中依旧报错找不到JAR包解决方法

    Maven 手动安装JAR包到本地maven仓库后,但在项目中依旧报错找不到JAR包解决方法 参考文章: (1)Maven 手动安装JAR包到本地maven仓库后,但在项目中依旧报错找不到JAR包解决 ...

最新文章

  1. CSS中实现DIV容器垂直居中
  2. AngularJs的UI组件ui-Bootstrap分享(六)——Tabs
  3. hdu4965 巧用矩阵乘法结合律
  4. 0-100之间的素数、判断素数的基本和优化方法
  5. 数据中心机房消防演练方案
  6. 二叉树的建立和遍历算法 - 数据结构和算法47
  7. Revit二次开发“创建组遍历组Group”
  8. 图像处理 --- 三、图像变换 3.2 图像的几何变换
  9. Cloud一分钟 | 一脚踏入云计算2.0时代,京东云这回拼的是“朋友 圈”;8400万元私有云招标...
  10. js,在字符串中,查找某个字符的位置
  11. less中mixins与extend的区别
  12. FineUI分组显示弹框最新的在最上边
  13. 本地iis部署之后网页无法打开
  14. python水浒传名字次数_《水浒传》中108个好汉的姓名及绰号!要按顺序!
  15. sis最新ip地址2020_2020秋招经验分享
  16. 怎样清理苹果电脑磁盘空间_Mac空间不足怎么办,快速清理Mac系统垃圾与磁盘|Crucial(英睿达)...
  17. c语言编程cosx近似值,编程利用公式求 cosx 的近似值(精度为10-6):
  18. 闲鱼爬虫 闲鱼爬取 批量搬运上架淘宝软件,闲鱼.上架淘宝辅助软件批量改价/改库存/改标题,批量采集店铺店铺,全店宝贝采集,批量采集店铺高销量自动加水印
  19. OpenMV 线性回归巡线之一:赛道提取
  20. 全能google地图下载器—原理

热门文章

  1. List集合中根据相同属性的对象合并计算
  2. 携程网今日瘫痪 官方称遭到不明攻击
  3. 怎么画出好的架构图,架构师必备!
  4. 互联网晚报 | 1月3日 星期一 | 春运首日火车票今日开售;中兴终端2021年出货量超1亿部;抖音上线“学习”频道...
  5. java自动拼图_java 拼图游戏完整源码,图片剪切,包含拼图自动还原功能
  6. 入行数据分析要知道什么是概括性度量
  7. JavaScript刷LeetCode拿offer-贪心算法
  8. 如何清除电脑桌面图标蓝底
  9. 关于将数据写入文件的两个函数fwrite()与fprintf()的大不同 —————— 开开开山怪
  10. mac pro词典无法使用问题