sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo escribir una subconsulta en la cláusula From en django ORM

De hecho, no es posible usar una Window consulta dentro de un WHERE cláusula. Entonces, en su lugar, use una Subquery :

from django.db.models import OuterRef, Subquery

top_salaries = EmpSalary.objects.filter(
    depname=OuterRef('depname')
).order_by('-salary')[:3]
result = EmpSalary.objects.filter(
    pk__in=Subquery(top_salaries.values('pk'))
).values('depname', 'empno', 'salary', 'enroll_date')