ERROR: column "jw_poi_cov.name" must appear in the GROUP BY clause or be used in an aggregate function报错了
时间: 2024-02-21 12:01:13 浏览: 78
这个错误是因为查询语句中使用了 `GROUP BY`,但是 SELECT 子句中的列中有一些列没有在 `GROUP BY` 中出现,也没有使用聚合函数进行处理。在 PostgreSQL 中,如果使用了 `GROUP BY`,那么 SELECT 子句中的列必须要么出现在 `GROUP BY` 中,要么使用聚合函数进行处理。
解决这个问题的方法是将 SELECT 子句中的列添加到 `GROUP BY` 中,或者使用聚合函数对这些列进行处理。例如,可以按照如下方式修改查询语句:
```
SELECT jpc.uuid, a.poi_string, MIN(jpc.name) AS jpc_name
FROM jw_all_info a
INNER JOIN jw_poi_cov jpc ON a.uuid = jpc.uuid
WHERE a.poi_string IS NOT NULL AND (jpc.name LIKE CONCAT('%', a.poi_string, '%') OR a.poi_string LIKE CONCAT('%', jpc.name, '%'))
GROUP BY jpc.uuid, a.poi_string;
```
在这个查询语句中,我们将 jpc.name 列使用了聚合函数 MIN 进行处理,并将 jpc.name 列从 `GROUP BY` 中去除。这样就可以避免上述报错了。
阅读全文