PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Django-Abfrage mit „order_by“, „distinct“ und „limit“ für Postgresql

Ihre Lösung scheint zu viel zu versuchen. Es führt auch zu 2 separaten SQL-Abfragen. Dies würde gut und mit nur einer einzigen Abfrage funktionieren:

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]