背景

我在做一个对关联的几张表进行select的操作时,因为有写重复数据,我只需要其中一条,所以我按照字段写了一个group by,希望每个分组只保留一条数据给我就行了。但是一致性就报如题所示的错误。

原因

据了解,postgresql认为select出来的字段必须要在GROUP BY子句中或在聚合函数中使用才行,真没想到就是报错信息的字面意思。

解决

网上搜索到的信息认为要对select出来的字段都加上max函数,但是我这次select了一堆字段,每个都加也太难看了,所以我就尝试着只对报错信息里提到的那一列加了max(),实验了一下,发现可以。

参考

postgresql报错:列“XXX”必须出现在GROUP BY子句中或在聚合函数中使用

更多推荐