elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Como usar GROUP y ORDER BY correctamente?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como usar GROUP y ORDER BY correctamente?  (Leído 8,581 veces)
BEATMASTER

Desconectado Desconectado

Mensajes: 153



Ver Perfil WWW
Como usar GROUP y ORDER BY correctamente?
« en: 28 Noviembre 2012, 04:10 am »

Hola hace tiempo que uso mysql pero a nivel muy basico creo yo y desde hace tiempo me sale una duda al querer hacer una seleccion de datos que en teoria deberia ser muy simple pero que nunca me ha regresado el valor deseado, primero pongo mi query

Código:
SELECT uni,la,lo FROM sys_gps GROUP BY uni ORDER BY fr DESC, hr DESC

mi tabla solo contiene esos campos ademas de uno llamado id que es la llave y fr y hr que son respectivamente un DATE y un TIME para la fecha y hora de registro

el campo uni es un entero el campo la y lo son varchar

el campo uni es un numero del 1 al N ahorita solo manejo hasta el 3

de lo que se trata es que para cada numero "uni" obtenga los datos mas recientes de "la" y "lo" por eso es que trato primero de agrupar por "uni" lo cual funciona porque me trae solo 3 registros del 1 al 3 pero no me trae el valor mas reciente ya que me trae el primer valor de cada uno y quisiera que me trajera el valor mas reciente de cada "uni"

creo que debe ser algo facil pero no eh encontrado algo con que sustituir mis condiciones para obtener el valor mas reciente, normalmente lo que hago es obtengo un grupo de valores cercnos por ejemplo lo limito a hace 5 mins y por php filtro la "uni" por codigo... pero bueno creo que seria mejor por mysql directamente alguien me sabe decir que debo cambiar? muchas gracias


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Como usar GROUP y ORDER BY correctamente?
« Respuesta #1 en: 28 Noviembre 2012, 04:31 am »

1. Para que usar un campo para la fecha y la hora, si puedes usar DATETIME() que los tiene juntos.
2. Para ordenar supongo que será,
Código
  1. .... ORDER BY fr, hr DESC


Prueba la query siguiente y mira a ver que resultado te da, y mira de que se trata el tipo de datos que te dije
Código
  1. SELECT uni,la,lo FROM sys_gps GROUP BY uni ORDER BY fr, hr DESC


En línea

Te vendería mi talento por poder dormir tranquilo.
BEATMASTER

Desconectado Desconectado

Mensajes: 153



Ver Perfil WWW
Re: Como usar GROUP y ORDER BY correctamente?
« Respuesta #2 en: 28 Noviembre 2012, 04:38 am »

mm sigue mostrandome el primer registro en ves de el ultimo, lo de tener la fecha y hora separadas es por cuestiones de la captura en ocasiones podran capturar solo la fecha o solo la hora no siempre sera automatico :p

EDIT:
Un amigo me dice que el problema es que al hacer el GROUP ya limita mis registros a estrictamente los primeros registros que encontro con el filtro del GROUP entonces pierde sentido hacer el ORDER porque ya lo hara solo con mis 3 registros y no con toda la tabla, segune sto el dice que es forsozo hacer 2 querys uno para obtener todos los registros mas recientes y luego filtrarlo por mi campo "uni" :S pero creo que deberia haber una forma de ahcerlo en una sola consulta no?
« Última modificación: 28 Noviembre 2012, 04:45 am por BEATMASTER » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Como usar GROUP y ORDER BY correctamente?
« Respuesta #3 en: 28 Noviembre 2012, 04:44 am »

Bueno, muestrame 5 registros y el resultado que esperas
En línea

Te vendería mi talento por poder dormir tranquilo.
BEATMASTER

Desconectado Desconectado

Mensajes: 153



Ver Perfil WWW
Re: Como usar GROUP y ORDER BY correctamente?
« Respuesta #4 en: 28 Noviembre 2012, 04:52 am »

teniendo estos datos
Código:
id,uni,la,lo,fr,hr
1,1,37.785835,-122.406418,2012-10-17,23:58:05
2,2,40.785835,-99.406418,2012-10-18,10:58:05
3,3,25.785835,-120.406418,2012-10-18,14:58:05
4,1,23.785835,-88.406418,2012-11-27,23:58:05
5,2,23.785835,-111.406418,2012-10-27,22:58:05
6,3,54.785835,-34.406418,2012-10-27,18:58:05

yo esperaria obtener este resultado
Código:
uni,la,lo
1,23.785835,-88.406418
2,23.785835,-111.406418
3,54.785835,-34.406418

ya que por cada valor de "uni" son los valores mas actuales de "la" y "lo"
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como validar UPLOAD de imagenes correctamente
PHP
Skeletron 6 11,826 Último mensaje 20 Abril 2010, 07:14 am
por Skeletron
ORDER BY no me funciona
Desarrollo Web
Ethgar 3 2,336 Último mensaje 19 Febrero 2014, 20:19 pm
por engel lex
Trabajar en Sopra Group
Foro Libre
carlos1987 0 1,475 Último mensaje 9 Abril 2014, 14:46 pm
por carlos1987
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines