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

Seleccione solo el último valor usando group by en mysql

Use un grupo simple por id_member, pero seleccione:

substring(max(concat(from_unixtime(timestamp),attendance)) from 20) as attendance

Esto adjunta la asistencia a la marca de tiempo para cada fila en un grupo, para poder seleccionar la marca de tiempo/asistencia deseada con max() y luego extraer solo la asistencia.

Qué concat() devuelve 19 caracteres de marca de tiempo formateada (AAAA-mm-dd HH:MM:SS) con la asistencia adjunta a partir del carácter 20; la substring(... from 20) obtiene solo la asistencia del máximo (en el sentido de la cadena) para el grupo. Puede eliminar el grupo y simplemente

select concat(from_unixtime(timestamp),attendance), timestamp, attendance

para tener una mejor idea de cómo usa max para obtener la asistencia correcta.