Im Django "Gruppieren nach" machen, aber das vollständige Objekt beibehalten

8

Ich möchte eine GROUP BY in Django machen. Ich habe Antworten auf Stack Overflow gesehen, die empfehlen:

%Vor%

Das funktioniert, aber das Problem ist, dass Sie ValuesQuerySet anstelle von QuerySet erhalten, also gibt mir das Abfrage-Set keine vollständigen Objekte, sondern nur bestimmte Felder. Ich möchte komplette Objekte erhalten.

Natürlich müssen wir, da wir gruppieren, auswählen, welches Objekt aus jeder Gruppe genommen werden soll; Ich möchte einen Weg, um das Objekt zu spezifizieren (z. B. nehmen Sie das eine mit dem größten Wert in einem bestimmten Feld, etc.)

Weiß jemand, wie ich das machen kann?

    
Ram Rachum 04.06.2014, 12:12
quelle

2 Antworten

1

Wenn Sie zwei Abfragen durchführen möchten, können Sie Folgendes tun:

%Vor%

Wenn Sie die obersten fünf Objekte nach dcount möchten, können Sie Folgendes tun:

%Vor%     
kronosapiens 25.05.2015 16:49
quelle
0

Es klingt so, als ob Sie nicht unbedingt GROUP BY brauchen, sondern nur Ihre Auswahl auf ein Element pro Feld begrenzen möchten (zB den MAX-Wert eines bestimmten Feldes).

Können Sie versuchen, bestimmte Objekte nach Feld zu sortieren, z. B.

In Postgres

Member.objects.order_by('designation').distinct('designation')

In jeder anderen Datenbank

Member.objects.distinct('designation')

Ссылка

    
conman 10.06.2014 12:45
quelle

Tags und Links