DjangoORMでウィンドウ関数を使おう - mizzsugar’s blog
先ほどのクエリをORMで表現すると、下記のようになります。
code:python
from django.db.models.functions import Rank
from django.db.models import F, Window
from employee.models import Salary
window = {
'order_by': F('salary').desc()
}
Salary.objects.annotate(
rank=Window(expression=Rank(), **window)
).values(
'department_id',
'employee_id',
'salary',
'rank'
)