1055 - Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column '36.36_analyse.vehicle_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
时间: 2023-07-18 22:09:07 浏览: 167
这个问题是因为 MySQL 数据库的 sql_mode 模式默认开启了 only_full_group_by。这个模式要求 GROUP BY 语句中的每个列都必须出现在 SELECT 语句中,或者是在聚合函数中进行计算。而这个查询中 SELECT 语句中的字段不在 GROUP BY 语句中,而且也没有使用聚合函数,所以会报错。
解决方法有两种:
- 可以将 sql_mode 设置为非 only_full_group_by 模式。具体方法是在 MySQL 配置文件中,找到 [mysqld] 部分,添加如下语句:
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
- 修改查询语句,将 SELECT 语句中未出现在 GROUP BY 语句中的列使用聚合函数计算,或者将这些列也加入到 GROUP BY 语句中。
例如:
SELECT vehicle_id, COUNT(*) AS cnt
FROM your_table
GROUP BY vehicle_id;
相关问题
[Err] 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated colum...
这个错误通常发生在MySQL中,因为MySQL对于GROUP BY查询有一些特殊的限制。
当你在SELECT语句中使用了GROUP BY子句时,MySQL要求在SELECT列表中包含GROUP BY子句中的所有列或者使用聚合函数(如SUM、COUNT、AVG等)对其他列进行聚合。这是为了保证查询结果的正确性。
你可以尝试在SELECT语句中将所有列都包含在GROUP BY子句中,或者使用聚合函数对其他列进行聚合。例如:
SELECT column1, column2, SUM(column3)
FROM table
GROUP BY column1, column2
这样就可以避免这个错误了。
1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column
这个错误是由于在SQL查询中,SELECT列表中的某一列没有包含在GROUP BY子句中,并且该列不是聚合列导致的。这个错误通常发生在使用GROUP BY子句进行分组查询时。
解决这个问题的方法有两种:
- 将SELECT列表中的所有列都添加到GROUP BY子句中。这样可以确保所有的列都被正确地分组。
- 如果你只想要对某些列进行分组,而不是所有的列,可以使用聚合函数对其他列进行处理。例如,使用SUM、COUNT、MAX等聚合函数来处理非分组列。
相关推荐
















