mysql 8.0下的SELECT list is not in GROUP BY clause and contains nonaggregated column
时间: 2023-07-18 08:21:04 浏览: 87
这个错误是因为 MySQL 5.7 和之前版本中 SELECT 中可以包含未在 GROUP BY 子句中的非聚合列,但在 MySQL 8.0 中,为了更严格地执行 SQL 标准,不再允许这种情况出现。
如果要解决这个问题,可以在 SELECT 子句中包含的所有非聚合列都添加到 GROUP BY 子句中,或者将非聚合列转换为聚合列(例如使用 MAX()、MIN()、SUM() 等函数)。
例如,如果你有以下查询语句:
```
SELECT department, name, MAX(salary)
FROM employee
GROUP BY department;
```
在 MySQL 8.0 中,你需要将它修改为:
```
SELECT department, name, MAX(salary)
FROM employee
GROUP BY department, name;
```
或者:
```
SELECT department, MAX(name), MAX(salary)
FROM employee
GROUP BY department;
```
相关问题
3 of SELECT list is not in GROUP BY clause and contains nonaggregated column
引用、和提供了关于"3 of SELECT list is not in GROUP BY clause and contains nonaggregated column"错误的一些信息。这个错误是由于在SQL查询中的SELECT列表中的某些列没有在GROUP BY子句中出现,并且这些列也没有进行聚合操作导致的。这个错误通常会在MySQL中出现,并且是由于sql_mode设置为only_full_group_by引起的。只有当SELECT列表中的列都出现在GROUP BY子句中或者进行了聚合操作时,才是合法的。
解决这个错误的方法是设置正确的sql_mode。你可以通过在MySQL中登录,然后使用SET命令来更改sql_mode的值。具体的步骤如下:
1. 登录到MySQL数据库。
2. 运行以下命令:SET sql_mode = '要设置的sql_mode值';
3. 执行你的SQL查询。
这样,你就可以解决"3 of SELECT list is not in GROUP BY clause and contains nonaggregated column"错误了。请确保你在设置sql_mode时选择了适合你的查询的值,并且在修改数据库设置之前备份你的数据。
引用提供的解决办法也是相同的,只是它指出了问题的原因,并建议设置正确的sql_mode值来解决这个错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
mysql使用group by查询报错SELECT list is not in GROUP BY clause and contains nonaggregated column
回答: 当使用GROUP BY语句进行查询时,SELECT语句中只能包含GROUP BY后面声明的列或者聚合函数。这是因为MySQL的ONLY_FULL_GROUP_BY模式要求SELECT语句中的列必须是明确的,以确保分组求最值的合法性检查。这种模式采用了与Oracle、DB2等数据库的处理方式。因此,如果在GROUP BY语句中使用了聚合函数,就需要将SELECT语句中的列限制在GROUP BY后面声明的列或者聚合函数中。如果SELECT语句中出现了不明确的列,就会报错"SELECT list is not in GROUP BY clause and contains nonaggregated column"。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* [mysql使用group by查询报错SELECT list is not in GROUP BY clause and contains nonaggregated column.](https://blog.csdn.net/weixin_40925480/article/details/127680083)[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^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [mysql使用group by查询报错SELECT list is not in GROUP BY clause and contains nonaggregated column......](https://blog.csdn.net/weixin_37557729/article/details/123896433)[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^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文