Я использую этот код для выбора ранга для каждой базы данных в sql. Однако я не получаю желаемый результат.
БАЗА ДАННЫХ: КОД:
SELECT user_id,country,city,institute,
RANK () OVER (PARTITION BY country ORDER BY up_vote+down_vote DESC) country_rank,
RANK() OVER (PARTITION BY city ORDER BY up_vote+down_vote DESC) city_rank,
RANK() OVER (PARTITION BY institute ORDER BY up_vote+down_vote DESC) institute_rank
FROM Users ;
FROM Users;
user_id | country | city | institute | country_rank | city_rank | institute_rank
---------+---------+---------+----------------------+--------------+-----------+----------------
17 | Canada | Toronto | University of Ottawa | 1 | 1 | 1
18 | Canada | Ottawa | University of Ottawa | 2 | 1 | 2
16 | test123 | test123 | test123 | 1 | 1 | 1
Я просто хочу получить user_id = 18, поэтому я добавил WHERE user_id=18
Однако я получаю это в качестве результата
user_id | country | city | institute | country_rank | city_rank | institute_rank
---------+---------+--------+----------------------+--------------+-----------+----------------
18 | Canada | Ottawa | University of Ottawa | 1 | 1 | 1
Что я хочу получить в качестве результата
user_id | country | city | institute | country_rank | city_rank | institute_rank
---------+---------+--------+----------------------+--------------+-----------+----------------
18 | Canada | Ottawa | University of Ottawa | 2 | 1 | 2