Цель: использовать функцию RowNumber, чтобы получить число для каждой строки, после этого отфильтровать по значению, но сохранить соответствующий RowNumber, указанный, когда фильтр не применяется, поскольку в противном случае RowNumber всегда будет возвращать 1.
Перед переводом на Django ORM я нахожу, что это помогает получить синтаксис SQL, а именно:
SELECT rn.row_number, name
FROM ( SELECT ROW_NUMBER() OVER (ORDER BY name), name
FROM customer ) as rn
WHERE name = 'Juan'
Проблема Я не могу перевести это на Django ORM. Я пробовал следующее:
subq = models.Customer.objects.all().annotate(
rank=Window(
expression=RowNumber(),
order_by=(F('name'))
)
)
Здесь я не знаю, как продолжить. Как мне указать моим models.Customer использовать subq в качестве FROM в своем запросе?