Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

SQL Selecionando datas com venda máxima para cada departamento


Você pode tentar abaixo maneira-
com cte como ( SELECT Departamentos.Nome, VENDAS.Data_venda, SOMA(BENS.Preço * VENDAS.Quantidade) COMO lucro FROM DEPARTMENTS internal join GOODS em DEPARTMENTS.Dept_id =GOODS.Dept_id internal join SALES em GOODS. Good_id =SALES.Good_id GROUP BY DEPARTMENTs.Name, SALES.Date_sale)Aselect * from cte awhere profit =(select max(profit) from cte b on a.department=b.department)
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