Using variables MySQL user defined, you can do the following:
SELECT
t.UserId,
t.`QuizId(AID)`,
t.`quizendtime(AID)`
FROM
(
SELECT
*,
IF(@sameUser = UserId, @a := @a + 1 , @a := 1) row_number,
@sameUser := UserId
FROM your_table
CROSS JOIN (SELECT @a := 1, @sameUser := 0) var
ORDER BY UserId , `quizendtime(AID)` DESC
) AS t
WHERE t.row_number <= 2
Working demo
Note. If you want no more than the xnumber of entries for each user, change the condition in the where section, as shown below:
WHERE t.row_number <= x
Explanation:
SELECT
*,
IF(@sameUser = UserId, @a := @a + 1 , @a := 1) row_number,
@sameUser := UserId
FROM your_table
CROSS JOIN (SELECT @a := 1, @sameUser := 0) var
ORDER BY UserId , `quizendtime(AID)` DESC;
userId quizendtime(AID).
() .
, userId, row_number (1). , row_number.
, , row_number <= 2, .
EDIT:. , mysql , , , :/p >
SELECT
t.UserId,
t.`QuizId(AID)`,
t.`quizendtime(AID)`
FROM
(
SELECT
*,
IF (
@sameUser = UserId,
@a := @a + 1,
IF(@sameUser := UserId, @a := 1, @a:= 1)
)AS row_number
FROM your_table
CROSS JOIN (SELECT @a := 1, @sameUser := 0) var
ORDER BY UserId , `quizendtime(AID)` DESC
) AS t
WHERE t.row_number <= 2;
V2