Я пытаюсь написать запрос ORM для соединения таблицы с самим собой после агрегирования (следовательно, select_related
et c не будет работать). Соответствующий запрос SQL выглядит следующим образом:
select * from
transaction t
join
(
select account_id, sum(amount) as total_amount
from transaction
where amount > 0
group by account_id
) aggr
on t.account_id = aggr.account_id
where amount > 0.4 * total_amount;
Пока не повезло. Я даже пробовал join_to/CustomJoin
из Django ORM. Присоединение к подзапросу , но это не сработало.
Изменить. Модели указаны ниже
class Account(models.Model):
currency = models.CharField(max_length=30)
...
class Transaction(models.Model):
account = models.ForeignKey(Account, db_constraint=False)
amount = models.DecimalField(max_digits=10, decimal_places=2)
booking_date = models.DateTimeField(db_index=True)
...