sql >> Database >  >> RDS >> Mysql

Haal het voorlaatste record voor elke gebruiker op uit de database

Je zou dat kunnen proberen, het is een beetje uitgebreid maar het werkt:

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



  1. problemen met OneToMany inclusief een filterclausule in spring jpa

  2. Kan MySQL FIND_IN_SET of gelijkwaardig worden gemaakt om indices te gebruiken?

  3. ORA-12519 TNS:geen geschikte service-handler gevonden

  4. Deadlocks diagnosticeren in SQL Server 2005