Ошибка PostGres при использовании Distinct: postgres ОШИБКА: не удалось определить оператор упорядочения для записи типа - PullRequest
3 голосов
/ 28 марта 2010

** РЕДАКТИРОВАТЬ **

Неважно, просто нужно вынуть парни ...

Я получаю эту ошибку: ОШИБКА: не удалось определить оператор упорядочения для записи типа при попытке использовать DISTINCT

Вот запрос:

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

И ошибки:

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 Ответ

1 голос
/ 28 марта 2010

Поскольку я думаю, что вы сработали, вам не нужны скобки после DISTINCT. Они выглядят так, как будто должны параметризовать DISTINCT, но на самом деле они служат для того, чтобы запрос возвращал один столбец типа записи вместо нескольких столбцов. Затем оператор DISTINCT пытается обработать запись и обнаруживает, что вы не определили порядок для этой записи.

Если вы хотите, чтобы DISTINCT работал с подмножеством возвращаемых значений, используйте DISTINCT ON.

...