SELECT
t1.
*
FROM tbl AS t1 INNER JOIN
( SELECT tbl.userId, MAX (date) AS lastDate FROM tbl
GROUP BY tbl.userId) AS t2 ON
t1.userId = t2.userId
AND t1.date = t2.lastDate
FROM tbl AS t1 INNER JOIN
( SELECT tbl.userId, MAX (date) AS lastDate FROM tbl
GROUP BY tbl.userId) AS t2 ON
t1.userId = t2.userId
AND t1.date = t2.lastDate