PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Consulta Django com order_by, distinct e limit no Postgresql


Sua solução parece estar tentando fazer muito. Isso também resultará em 2 consultas SQL separadas. Isso funcionaria bem e com apenas uma única consulta:
action_ids = Action.objects.order_by('product_id', '-created_at')\
    .distinct('product_id').values_list('id', flat=True)

result = Action.objects.filter(id__in=action_ids)\
    .order_by('-created_at')[:10]