PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Requête Django avec order_by, distinct et limit sur Postgresql

Votre solution semble essayer d'en faire trop. Cela entraînera également 2 requêtes SQL distinctes. Cela fonctionnerait bien et avec une seule requête :

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]