Получить место пользователя в рейтинге
Есть uid пользователя равняется 3. Нужно определить по сортировки по полю lv2 что данный пользователь с uid=3, занимает второе место. Если просто отсортировать, в ручную в графическом видео видно, что второе, а как составить такой sql запрос. База данных MySql
SELECT * FROM `testdb` ORDER BY `testdb`.`lv` DESC
Вот такой запрос просто выводит всех пользователей. 
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Ну например так:
SELECT *, ( SELECT COUNT(*)
FROM testdb t2
WHERE t1.lv <= t2.lv) place
FROM testdb t1
WHERE uid = 3
Или так:
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY lv DESC) place
FROM testdb
)
SELECT *
FROM cte
WHERE uid = 3
Оба запроса предполагают, что lv не имеет дубликатов. Иначе надо вводить доп. критерии.