2010-03-28 4 views
2

** EDIT **Postgres Ошибка при использовании Четкие: Postgres ОШИБКА: не удалось определить оператор заказа для типа записи

Nevermind, просто нужно вынуть ...

скобки

Я получаю эту ошибку : ОШИБКА: не удалось определить оператор заказа для типа записи при попытке использовать 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. 
+3

Пожалуйста, подумайте над тем, чтобы добавить свое решение в качестве ответа, а не редактировать свой вопрос, чтобы другие могли извлечь из него выгоду должным образом :). –

ответ

1

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

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

+0

Да, я работал над парсе, но я не понимал, почему, поэтому спасибо за объяснение! – CaffeineIV

Смежные вопросы