Saltar al contenido

ORDENAR POR fecha y hora ANTES DE AGRUPAR POR nombre en mysql

Por fin luego de tanto batallar ya encontramos el resultado de esta impedimento que ciertos los usuarios de nuestra web presentan. Si deseas aportar algún detalle no dejes de aportar tu conocimiento.

Solución:

Otro método:

SELECT * 
FROM (
    SELECT * FROM table_name
    ORDER BY date ASC, time ASC 
) AS sub
GROUP BY name

GROUP BY agrupa en el primer resultado coincidente que encuentra. Si ese primer resultado coincidente es el que desea, entonces todo debería funcionar como se esperaba.

Prefiero este método ya que la subconsulta tiene sentido lógico en lugar de salpicarla con otras condiciones.

Como no puedo comentar sobre la respuesta del usuario 1908688, aquí hay una pista para los usuarios de MariaDB:

SELECT *
FROM (
     SELECT *
     ORDER BY date ASC, time ASC
     LIMIT 18446744073709551615
     ) AS sub
GROUP BY sub.name

https://mariadb.com/kb/en/mariadb/por-que-se-ignora-el-pedido-por-en-una-desde-subconsulta/

Creo que esto es lo que buscas:

SELECT name, min(date)
FROM myTable
GROUP BY name
ORDER BY min(date)

Por el momento, debe hacer una fecha mysql a través de STR_TO_DATE:

STR_TO_DATE(date + ' ' + time, '%Y-%m-%d %h:%i:%s')

Asi que :

SELECT name, min(STR_TO_DATE(date + ' ' + time, '%Y-%m-%d %h:%i:%s'))
FROM myTable
GROUP BY name
ORDER BY min(STR_TO_DATE(date + ' ' + time, '%Y-%m-%d %h:%i:%s'))

Si conservas alguna duda y disposición de modernizar nuestro división eres capaz de añadir una crónica y con deseo lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *