Как узнать на каком месте строка после сортировки?
Есть таблица пользователей в PostgreSQL. Делаю топ и нужно реализовать функцию, для определения местап пользователя по рейтингу.
Найти первые 3 места у меня не составило проблем с помощью:
SELECT * FROM users WHERE ratedByUsers > 1 ORDER BY rate DESC LIMIT 1 OFFSET $1
Где $1 - "Место - 1"
Но вот как мне найти место на котором расположен пользователь зная его id?
Ответы (1 шт):
Автор решения: flapenguin
→ Ссылка
Можете использовать оконные функции.
select
users.*,
rank() over (order by rate desc) as rank
from users
where rate between 20 and 70 -- любые условия фильтрации
https://www.postgresql.org/docs/current/tutorial-window.html