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

Rufen Sie den vorletzten Datensatz für jeden Benutzer aus der Datenbank ab

Sie könnten das versuchen, es ist ein bisschen ausführlich, aber es funktioniert:

SELECT
  name,
  max(Updated_on) as Updated_on,
  STATUS
FROM userstatus a
  WHERE (name, Updated_on) not in
  (select name, max(Updated_on) FROM userstatus group by name)
group by name, status
HAVING UPDATED_ON =
  (SELECT MAX(UPDATED_ON) FROM userstatus b where a.name = b.name
   and (b.name, b.Updated_on) not in
  (select name, max(Updated_on) FROM userstatus group by name)
  group by name);

Sqlfiddle