Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wählen Sie nur den letzten Wert mit group by bei mysql aus

Verwenden Sie eine einfache Gruppe nach id_member, aber wählen Sie:

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

Dies hängt die Anwesenheit an den Zeitstempel für jede Zeile in einer Gruppe an, um den gewünschten Zeitstempel/die gewünschte Anwesenheit mit max() auswählen und dann nur die Anwesenheit extrahieren zu können.

Was concat() Rückgaben sind 19 Zeichen des formatierten Zeitstempels (JJJJ-MM-TT HH:MM:SS), wobei die Anwesenheit ab Zeichen 20 angehängt wird; der substring(... from 20) bekommt nur die Anwesenheit vom (stringweise) Maximum für die Gruppe. Sie können die Gruppe einfach mit und

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

um eine bessere Vorstellung davon zu bekommen, wie Max verwendet wird, um die richtige Anwesenheit zu erhalten.