Имеется табличка, в которой тип группы меняется с течением времени:
select * from user_groups_by_types ;
id | change_date | user_group | group_type
----+-------------+------------+------------
1 | 2022-05-01 | A | type1
2 | 2022-05-05 | A | type2
3 | 2022-05-06 | B | type1
Требуется выбрать для каждой группы актуальный тип (т.е. самый последний по дате тип). Решение для одной конкретной группы очевидно. Как это обобщить на все группы?
select * from user_groups_by_types where user_group = 'A' and change_date = (select max(change_date) from user_groups_by_types where user_group = 'A');
id | change_date | user_group | group_type
----+-------------+------------+------------
2 | 2022-05-05 | A | type2