postgresql: как получить первичный ключ из предложения group by?

Это запрос, который выбирает набор желаемых строк:

select max(a), b, c, d, e
from T
group by b, c, d, e;

Таблица имеет первичный ключ в столбце id .

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

select id, max(a), b, c, d, e
from T 
group by b, c, d, e;

ERROR:  column "T.id" must appear in the GROUP BY clause or be used in an aggregate function

Я пробовал это, ковыряясь в некоторых других вопросах postgresql, но безуспешно:

select distinct on (id) id, max(a), b, c, d, e
from T 
group by b, c, d, e;

ERROR:  column "T.id" must appear in the GROUP BY clause or be used in an aggregate function

Что мне делать? Я знаю, что для каждого результата может быть только один id , потому что это первичный ключ ... Мне буквально нужен первичный ключ вместе с остальными данными для каждой строки, в которой исходный (рабочий) запрос возвращается.

7
задан Claudiu 28 October 2011 в 21:06
поделиться