Вы можете использовать оконные функции:
order by
min(date) over(partition by name),
date
Если существует возможность связанных групп, вы можете добавить name
в качестве второго критерия сортировки, чтобы избежать смешивания групп:
order by
min(date) over(partition by name),
name,
date