sql >> Base de Datos >  >> RDS >> Mysql

Cómo seleccionar el conjunto más reciente de registros fechados de una tabla mysql

Use esta solución con precaución:
no se garantiza que funcione en futuras versiones de mysql
no se sabe que funcione en mariadb 5.5

Esta consulta puede funcionar bien, porque no hay uniones.

SELECT * FROM (
    SELECT timestamp, method, id, response
    FROM rpc_responses
    WHERE 1 # some where clause here
    ORDER BY timestamp DESC
) as t1
GROUP BY method

El "agrupar por", colapsa el conjunto de resultados en el método y devuelve solo 1 fila por método, el más reciente, debido a la marca de tiempo ORDER BY DESC en la consulta interna.

FYI, PostgreSQL tiene una forma de hacer esto integrada en el lenguaje:

SELECT DISTINCT ON (method) timestamp, method, id, response
FROM rpc_responses
WHERE 1 # some where clause here
ORDER BY method, timestamp DESC