3 maiores valores
23/01/2015
0
Em uma tabela SQL tenho os campos a seguir, Agente, Contrato, Valor, preciso extrair os 3 maiores valores de contrato para cada um dos agentes.
Exemplo:
Agente, Contrato, Valor
01, A, 120
01, B, 110
01, C, 100
02, A, 90
02, B, 70
02, C, 50
E assim sucessivamente.
Desde já agradeço.
Alexandre
Exemplo:
Agente, Contrato, Valor
01, A, 120
01, B, 110
01, C, 100
02, A, 90
02, B, 70
02, C, 50
E assim sucessivamente.
Desde já agradeço.
Alexandre
Alexandre
Curtir tópico
+ 0
Responder
Post mais votado
26/01/2015
WITH RANK_CTE AS ( SELECT AGENTE, CONTRATO, MAX(VALOR) AS 'VALOR', ROW_NUMBER() OVER (PARTITION BY AGENTE ORDER BY MAX(VALOR) DESC) RANK_CONTRATOS FROM NOME_TABELA GROUP BY AGENTE, CONTRATO, VALOR ) SELECT * FROM RANK_CTE WHERE RANK_CONTRATOS <= 3 ORDER BY 1
Thiago Cruz
Responder
Mais Posts
23/01/2015
Ronaldo Lanhellas
A única forma de fazer isso é através de uma função, pois em um SQL simples você não consegue fazer esse tipo de detalhamento.
Responder
Clique aqui para fazer login e interagir na Comunidade :)