Below is my database table.
id    user_id    group_id    created_at 
 1    1          1           2016-09-29
 2    1          2           2016-10-02
 3    1          3           2016-10-02
 4    1          4           2016-10-03
 5    1          5           2016-10-03
 6    2          1           2016-01-02
 7    2          2           2016-01-02
 8    2          3           2016-01-03
 9    3          1           2016-09-29
10    3          2           2016-09-30
11    3          3           2016-10-02
12    3          4           2016-10-02
13    3          5           2016-10-03
Below is my sql query.
SELECT myTable.* 
FROM myTable 
INNER JOIN (
    SELECT id 
    FROM myTable 
    GROUP BY id 
) group_max 
ON myTable.id = group_max.id 
WHERE YEARWEEK(myTable.add_time) = YEARWEEK(NOW()) 
ORDER BY myTable.user_id ASC, myTable.add_time ASC
With the above query I get the following result.
id    user_id    group_id    created_at 
 4    1          4           2016-10-03
 5    1          5           2016-10-03
 2    1          2           2016-10-02
 3    1          3           2016-10-02
 8    2          3           2016-01-03
 6    2          1           2016-01-02
 7    2          2           2016-01-02
13    3          5           2016-10-03
11    3          3           2016-10-02
12    3          4           2016-10-02
How to select the last 2 recent records (within this week) group by user_id as the following. 
id    user_id    group_id    created_at 
 5    1          5           2016-10-03
 4    1          4           2016-10-03
 8    2          3           2016-01-03
 7    2          2           2016-01-02
13    3          5           2016-10-03
12    3          4           2016-10-02
 
    