PostGres Error When Using Distinct : postgres ERROR: could not identify an ordering operator for type record

我只是一个虾纸丫 提交于 2019-12-22 10:07:45

问题


** EDIT **

Nevermind, just needed to take out the parens...

I get this error: ERROR: could not identify an ordering operator for type record when trying to use DISTINCT

Here's the query:

select DISTINCT(g.fielda, g.fieldb, r.type) 
from fields g LEFT JOIN types r ON g.id = r.id;

And the errors:

ERROR:  could not identify an ordering operator for type record
HINT:  Use an explicit ordering operator or modify the query.

********** Error **********

ERROR: could not identify an ordering operator for type record
SQL state: 42883
Hint: Use an explicit ordering operator or modify the query.

回答1:


As I think you've worked out, you don't want the parentheses after DISTINCT. They look like they should be parameterising DISTINCT, but they actually serve to make the query return a single column of record type instead of multiple columns. The DISTINCT operator then tries to work on the record and finds that you've not defined an ordering on that record.

If you want DISTINCT to work on a subset of your return values, use DISTINCT ON.



来源:https://stackoverflow.com/questions/2532190/postgres-error-when-using-distinct-postgres-error-could-not-identify-an-order

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!