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

Cómo seleccionar filas con la última hora para cada fecha dentro de los últimos 30 días a partir de ahora

Puedes group by la fecha parte de datetime y obtenga el máximo para cada día.

select max(`datetime`) 
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)

Para obtener todos los campos de la tabla para dichas filas, use

select * from tablename where `datetime` in (
select max(`datetime`) 
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
)