Это запрос, который выбирает набор желаемых строк:
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
для каждого результата, потому что это первичный ключ ... Я буквально хочу, чтобы первичный ключ вместе с остальными данными был для каждой строки, возвращаемой первоначальным (рабочим) запросом.