Função de agregação MAX()

MySQL

24/09/2016

Boa tarde, pessoal!

Utilizo o xampp versão windows 5.6.24

Quando faço uma consulta utilizando a função de agregação MAX(), ele exibe o valor correto, o problema são os outros campos que peço para exibir.

Segue exemplo:



create table alunos (
     id int,
     nome varchar(50),
     dtNascimento date,
     peso decimal(5,2),
     sexo char(2)
) PRIMARY KEY (id);

insert into alunos values 

     (null, 'Filipe', '1999-09-11', '75.8','m'),
     (null, 'Joao',  '1972-11-11', '79','m'),
     (null, 'Juliana', '1987-04-15', '81.9','f'),
     (null, 'Renato', '1977-10-27', '90','m');

Select * from alunos order by peso desc;

id   |        nome |     dtNascimento |  peso | sexo

4        Renato         1977-10-27       90       m
3        Juliana         1987-04-15       81.9     f
2        Joao             1972-11-11       79       m
1        Filipe            1999-09-11       75.8    m

select id, nome, max(peso) from alunos;

1      Filipe      90     // deveria ser exibido o id 4 e o nome Renato que correspondem ao campo peso do valor 90



Alguém mais passou por isso? É problema no mysql/xampp?

Agradeço a atenção!
Filipe Silva

Filipe Silva

Curtidas 0

Melhor post

Filipe Silva

Filipe Silva

24/09/2016

Obrigado pela atenção Dirceu Morais!

Então, o maior motivo em abrir o tópico, foi pra saber se o a minha consulta está errada ou é bug no mysql.

Eu até estou consultando dessa forma

select id, nome from alunos
order by alunos desc
limit 1;


abraço!


Ops!

select id, nome, peso from alunos
order by peso desc
limit 1;
GOSTEI 1

Mais Respostas

Dirceu Morais

Dirceu Morais

24/09/2016

Tente usar assim:

select a1.id, a1.nome, a1.peso from alunos a1 Where a1.id = (Select First 1 a2.id from Alunos a2 Order by a2.id desc)
GOSTEI 0
Filipe Silva

Filipe Silva

24/09/2016

Obrigado pela atenção Dirceu Morais!

Então, o maior motivo em abrir o tópico, foi pra saber se o a minha consulta está errada ou é bug no mysql.

Eu até estou consultando dessa forma

select id, nome from alunos
order by alunos desc
limit 1;


abraço!
GOSTEI 0
Jones Granatyr

Jones Granatyr

24/09/2016

Como você está utilizando função de agrupamento (max), precisa também ter a cláusula group by
GOSTEI 0
POSTAR