add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
select version();
create table userData (recordDate date ,userName varchar(10), score FLOAT);
insert into userData (recordDate, userName, score)
values
('2020/8/1','Chris', 78),
('2021/8/2','Aamir', 77),
('2021/8/3','Alex', 76),
('2021/8/1','Ali', 78);
-- more users
insert into userData (recordDate, userName, score)
values
('2019/8/1','user1', 68),
('2019/8/2','user2', 67),
('2019/8/3','user3', 66),
('2019/8/1','user4', 58),
('2019/8/1','user5', 64),
('2019/8/1','user6', 43),
('2019/8/1','user7', 55);

version()
8.0.27
set @page := 1;
set @limit := 2;

WITH ranks AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY score DESC) AS score_rank
FROM userData
)
SELECT *
FROM ranks
WHERE score_rank BETWEEN (@page - 1) * @limit + 1 AND @page * @limit
OR userName = 'Alex'
ORDER BY score_rank
recordDate userName score score_rank
2020-08-01 Chris 78 1
2021-08-01 Ali 78 2
2021-08-03 Alex 76 4