create table files (
id int generated always as identity,
filename varchar,
user_id int,
version int,
created_at date
);
insert into files (filename, user_id, version, created_at) values
('one', 1, 1, '2022-01-01'),
('one', 1, 2, '2022-01-02'),
('some', 1, 1, '2022-01-03'),
('some', 2, 1, '2022-01-03');
with order_files as (
select
*,
row_number() over (partition by filename order by version desc, created_at desc) rn
from files
where user_id = 1
) select id, filename, user_id, version, created_at
from order_files where rn = 1
;