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