PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Query Django con order_by, distinto e limit su Postgresql

La tua soluzione sembra che stia cercando di fare troppo. Risulterà anche in 2 query SQL separate. Funzionerebbe bene e con una sola query:

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]