статей нет, сам раскапывал. способ неофициальный, рукотворный. делается подзапрос с row_number() over (partition by ... order by ...), потом делается запрос из подзапроса и манипуляциями с метадатой query builder-а заставляем typeorm делать из запроса getMany и возвращать энтити а не raw-объекты…