我想写一个像这样的查询:
SELECT COUNT(a.consumerservicerequestid), YEAR(b.statusdate), MONTH(b.statusDate), AVG(TIMEDIFF(a.statusDate, b.statusdate))
FROM consumer_servicerequest_log a, consumer_servicerequest_log b
WHERE a.consumerservicerequestid=b.consumerservicerequestid
AND a.status="Parts received"
OR b.status IN ("Parts pending","Parts request accepted")
GROUP BY YEAR(b.statusdate), MONTH(b.statusdate);
有没有办法在Django ORM中做到这一点?
没有看到你的模型就很难回答这个问题,但我相信你可以做复杂的查找
Model.objects.annotate(count=Count(MODEL_FIELD))
.annotate(hour=Round(F('connection_timestamp') % (3600 * 24) /3600))
aggregate
方法filter
方法用于过滤字段值