Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'dx2.a.admin_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
时间: 2023-07-21 21:59:08 浏览: 44
这是一个 SQL 查询错误,可能是因为你的 SQL 模式设置为 "only_full_group_by",它要求在 GROUP BY 子句中包含所有非聚合列。而你的查询中,SELECT 列表中的第一个表达式不在 GROUP BY 子句中,并且它包含了一个非聚合列 'dx2.a.admin_id'。这就导致了不兼容的错误。
要解决这个问题,你可以将 SQL 模式设置为其他模式,如 "traditional",它允许在 SELECT 列表中包含非聚合列,而不需要在 GROUP BY 子句中列出它们。你可以通过执行以下语句来更改 SQL 模式:
```
SET sql_mode = 'traditional';
```
请注意,修改 SQL 模式可能会影响其他查询的行为,所以在更改之前请确保了解其后果。
相关问题
SELECT list is not in GROUP BY clause and contains nonaggregated column 'a.V_TENOR1' which is not functionally
SELECT list is not in GROUP BY clause and contains nonaggregated column 'a.V_TENOR1' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by.
这个错误通常在使用GROUP BY子句时出现。它表示SELECT列表中的某些列没有在GROUP BY子句中,并且这些列不是函数依赖于GROUP BY子句中的列。这与sql_mode=only_full_group_by不兼容。
解决这个问题的方法有两种:
1. 将非聚合列添加到GROUP BY子句中:将SELECT列表中的非聚合列添加到GROUP BY子句中,以确保所有列都被正确分组。
2. 使用聚合函数处理非聚合列:如果你不需要将非聚合列添加到GROUP BY子句中,可以使用聚合函数(如SUM、MAX、MIN等)对这些列进行处理,以便它们能够与GROUP BY子句兼容。
[42000][1055] Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'dx2.bill.bill_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
这个错误是由于在使用GROUP BY子句时,SELECT列表中的某些列不在GROUP BY子句中,并且这些列不是被聚合函数所依赖的,导致与sql_mode=only_full_group_by模式不兼容。要解决这个问题,你可以选择以下几种方法之一:
1. 将SELECT列表中的非聚合列添加到GROUP BY子句中。例如,将'bill.bill_id'添加到GROUP BY子句中。
2. 使用聚合函数对非聚合列进行处理。例如,使用MAX或MIN函数来获取'bill.bill_id'列的值。
3. 修改MySQL的sql_mode设置,将其更改为允许非聚合列未出现在GROUP BY子句中。例如,可以将sql_mode设置为'ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'。
请注意,根据你的具体需求和查询逻辑,选择适合的解决方法。