Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá povo. Bom dia.
Tenho o seguinte problema:
Preciso selecionar o segundo maior registro de uma tabela agrupando registros:
Para o maior valor eu teria:
select max(campo1), campo2 from tabela group by campo2
Logo eu tenho o valor máximo do campo1 para cada registro do campo2.
O detalhe que eu também preciso do segundo maior campo1 de cada campo2.
Alguma sugestão?
Fala Marcos.. vlw pela atenção.
Cara acredito que não funcione, afinal o select interno retornaria o maior valor para cada nome, descartando o primeiro valor retornado da lista. De modo que eu teria o maior valor do segundo nome da lista.
Eu preciso do segundo maior valor de cada nome da tabela por ex:
Nome - Valor
A 15
B 17
A 14
C 13
B 18
C 19
o resultado esperado seria:
A 14
B 17
C 13
Relendo o que escrevi no post original realmente deu a entender que seria o segundo maior registro da tabela.. (como escrito)..
Na verdade preciso do segundo maior valor para cada registro de uma tabela. Como mostrei no post anterior
:)
SELECT MAX(a.valor) , a.nome FROM tebela a WHERE a.valor < (SELECT max(b.valor) FROM tabela b WHERE b.nome=a.nome GROUP BY b.nome) GROU BY a.nome
Olá Paulo..
Vlw pela atenção.
Já tinha feito query parecida, mas devido ao fato de ser uma tabela com muitos registros o resultado não é exibido devido ao timeout do servidor.
voce poderia fazer um select from select
assim dentro do from, vc coloca pra pegar o group by limitando no segundo.
tente alguma coisa nesse sentido...
espero que eu tenha ajudado.