Você pode tentar abaixo maneira-
OU você pode usar
row_number()
select * from(select *, row_number() over(partição por departamento oder por lucro desc) as rnfrom cte)A onde rn=1
row_number()
select * from(select *, row_number() over(partição por departamento oder por lucro desc) as rnfrom cte)A onde rn=1