Я новичок в Postgres и у меня возникла проблема с тем, что кажется простой задачей ... Я прочитал много примеров, и многие из них встречаются только с одной таблицей, поэтому я здесь за помощью!
У меня есть таблица пользователей и таблица событий.
Пользователи состоят из user_id, name, user_type
События состоят из event_id, user_id, event_name, event_type, event_date
Я хочу получить последние события для каждого пользователя, где user_type = full и event_type = paid
Я пробовал следующее, но Postgres говорит мне, что «ERROR: столбец« e.event_name »должен появиться в GROUP»Предложение BY или использоваться в агрегатной функции "
select
u.user_id,
u.user_type,
max(e.event_id),
e.event_name
from
users u
join events e on u.user_id = e.user_id
where
u.user_type = 'full'
and e.event_type = 'paid'
group by
u.user_id
Примечание. В некоторых решениях упоминается DISTINCT ON, но система, которую я использую, не считает, что это допустимый SQL.