Django запрос для поиска значений объектов за предыдущий период (если они существуют)
У меня есть простой проект django, и я пытаюсь отслеживать ранги для определенных объектов, чтобы увидеть, как они меняются со временем. Например, каков был ранг ВВП США (по сравнению с другими странами) за последние 3 года. Ниже приведена структура базы данных postgres, с которой я работаю:
Ниже приведено то, чего я пытаюсь достичь:
Что я нахожу сложным, так это то, что значение предыдущего периода может существовать или не существовать, и возможно, что даже организация может быть или не быть в предыдущем периоде. Период может быть годом, кварталом или месяцами, но для конкретной записи он может быть любым из них и остается неизменным в течение всех лет для этой записи.
Может ли кто-нибудь направить меня в правильном направлении, чтобы написать запрос для достижения этих таблиц? Я пытаюсь избежать написания тяжелых forloop запросов, потому что там может быть 100s сущностей и много лет данных
До сих пор я смог добиться только следующего результата:
Я просто пытаюсь понять, как использовать annotate для получения значений предыдущего периода и рангов, но я практически застрял.