Wie die Umsetzung der having-Klausel in sqlite django ORM
Habe ich geschrieben django sqlite orm-syntax zum abrufen von bestimmten Datensätzen:
from django.db.models.aggregates import Count
JobStatus.objects.filter(
status='PRF'
).values_list(
'job', flat=True
).order_by(
'job'
).aggregate(
Count(status)__gt=3
).distinct()
Aber es gibt mir eine Fehlermeldung und die sql-Entsprechung für diese syntax funktioniert gut für mich.
Dies ist mein sql-äquivalent.
SELECT *
FROM tracker_jobstatus
WHERE status = 'PRF'
GROUP BY job_id
HAVING COUNT(status) > 3;
und ich bekomme das Ergebnis wie folgt
+----+--------+--------+---------+---------------------+---------+
| id | job_id | status | comment | date_and_time | user_id |
+----+--------+--------+---------+---------------------+---------+
| 13 | 3 | PRF | | 2012-11-12 13:16:00 | 1 |
| 31 | 4 | PRF | | 2012-11-12 13:48:00 | 1 |
+----+--------+--------+---------+---------------------+---------+
Ich bin nicht in der Lage zu finden, die django-sqlite-äquivalent für diese.
Ich bin sehr dankbar, wenn jemand helfen kann.
- Ich fragte dazu in #django auf Freenode vor einiger Zeit und bekam die Antwort, dass es nicht möglich war. Sorry, ein überbringer schlechter Nachrichten.
- nicht möglich? wenn es ein richtiges tutorial wir können es herausfinden in was auch immer Weise . Danke .
- Froh zu sein, erwies sich als falsch, danke.
- Immer willkommen GlennS
Du musst angemeldet sein, um einen Kommentar abzugeben.
Endlich habe ich es geschafft, um es herauszufinden. Die ORM-syntax ist so etwas wie dieses.
Mehr Allgemeine Regel: Sie müssen zum erstellen neuer Spalte (von
annotate
) und dann filter durch, dass die neue Spalte. Das queryset wird transformiert zuHAVING
Stichwort.