SELECT year, id, rate
FROM (SELECT
year, id, rate, row_number() over (partition by id order by rate DESC)
FROM h
WHERE year BETWEEN 2000 AND 2009
AND id IN (SELECT rid FROM table2)
GROUP BY id, year
ORDER BY id, rate DESC) as subquery
WHERE row_number <= 5
Подзапрос почти идентичен вашему запросу. Только изменение добавляет
row_number() over (partition by id order by rate DESC)
Если вы хотите развернуть приложение python, вы можете использовать cx_freeze для его упаковки. Он предоставит вам двоичный файл, готовый к выполнению
Если вы хотите развернуть свое приложение, которое должно быть запущено на других машинах. Я действительно предлагаю вам использовать докер. Вы создадите образ Docker локально, который будет содержать ваше приложение и все зависимости, которые нужны пользователю, чтобы установить Docker, получить образ Docker и запустить его на своем компьютере. https://docs.docker.com/get-started/