Glauco,
dá esse erro : -Invalid expression in the select list (not contained in either an aggregate fun ction or the GROUP BY clause)
o que está difícil entrar na minha cabeça é o porque que pessoas colocam mais de uma coluna no group by e no order by , o MySql eu sempre uso apenas uma coluna, Estou há dias tentando agrupar no firebird.
Parece uma sintaxe especial do MySQL, que pega o primeiro registro referente ao campo agrupado (idade, nesse caso). Eu realmente não esperaria que isso funcionasse, e também não faz muito sentido pra mim. Mas, enfim…
De qualquer forma, no Firebird dá pra fazer algo assim:
select
(select first 1 b.nome from teste b where b.idade = a.idade) as nome,
(select first 1 c.sexo from teste c where c.idade = a.idade) as sexo,
a.idade
from teste a
group by a.idade
Pode ser que haja uma sintaxe melhor ou alguma função que faça isso, mas eu particularmente não conheço. Order by pode ser necessário para determinar qual registro retornar, mas fiz sem e obtive o mesmo resultado.
Jonas.cant,
Minha necessidade não é pra esse select, esse é um exemplo, mas se conseguir com esse eu consigo no outro, coloquei um simples pra ficar mais fácil de eu enteder.
Usando o MAX( ) funcionou perfeitamente.
Mas fiquei com uma dúvida, como o MAX retorna o maior valor, pode acontecer de algumas linhas ser descartadas do select ?