数据库报错:不是group by表达式

本文详细解析了SQL中常见的Group By错误,强调Group By子句后字段必须与Select子句完全匹配的重要性,避免因字段不一致导致的数据汇总错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在改公司项目的bug时,写sql语句时出现了不是group by 表达式的错误,这个错误的话我们看一下。
报错
在这里插入图片描述
报错原因:group by后面接的字段必须是select后面出现的全部字段(通俗讲就是select后面出现的字段group by就要用上)

改正
在这里插入图片描述

回答: 当使用group by进行分组查询时,如果group by后的字段与select后查询的字段不一致,就会报错报错信息如下:#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by。\[1\]这个错误在达梦数据库中也存在。解决这个问题有几种方法。一种是补全group by后的字段,但这种方法不推荐,因为如果要查询的字段很多且内容不能保证不重复,补全所有字段会导致查询数据丢失。另一种方法是修改配置,可以使用navicat管理工具连接mysql数据库,然后在命令界面中输入以下语句来修改配置:select @@global.sql_mode; set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';\[3\]这样就可以解决group by查询数据库报错的问题了。 #### 引用[.reference_title] - *1* *3* [高版本Mysql使用group by 分组报错](https://blog.youkuaiyun.com/qq_43486404/article/details/126744365)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [达梦数据库SQL查询报错不是 GROUP BY 表达式解决方法](https://blog.youkuaiyun.com/qq_37898570/article/details/126951104)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谦风(Java)

一起学习,一起进步(✪ω✪)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值