Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi,
Estou quebrando a cabeça a todos que puderem ajudar, ficarei muito agradecido.
Quero pegar apenas a primeira linha de cada grupo ordenado pelo campo Data DESC, como posso fazer?
Minha tabela é a seguinte:
grupo | nome | data
1 | pedro | 15/02/2014
2 | juca | 15/02/2014
2 | maria | 17/02/2014
1 | jose | 18/02/2014
3 | ana | 16/02/2014
Ou seja, na minha QUERY deveria retornar:
1 Jose 18/02/2014
2 Maria 17/02/2014
3 ana 16/02/2014
Pesquise sobre row_number, pode ajudar nessa questão.
SELECT
a.grupo,
(SELECT nome FROM nome_tabela b WHERE b.grupo=a.grupo ORDER BY b.id DESC LIMIT 1) AS nome,
(SELECT data FROM nome_tabela b WHERE b.grupo=a.grupo ORDER BY b.id DESC LIMIT 1) AS data
FROM nome_tabela a
GROUP BY a.grupo
ORDER BY a.id ASC;
substitui nome_tabela pelo nomde da sua tabela e posta o que aconteceu
EDIT : quebrar linhas
Partindo do principio de que você já tenha tudo pronto e só esteja se enrolando com a query, seria algo como em:
"select grupo,nome, data from nome_tabela order by data desc;"
Mas se precisa de ajuda com outras partes da estrutura, dê mais detalhes.