![](/img/trans.png)
[英]How to find the correspond value in a column due to a max value from another column group by other columns?
[英]How to use group by, max of a column and also getting other columns of the model from a Django queryset?
我有一個看起來像這樣的 model
class Documents(models.Model):
id = models.AutoField(primary_key=True, editable=False)
uid = models.CharField(max_length=64)
version = models.IntegerField()
reviewed_dtm = models.DateTimeField(null=True)
timestamp = models.DateTimeField(auto_add_now=True)
document = models.FileField()
我想要最大版本的時間戳和每個 uid 的最小數量之間的平均時間差。 我基本上想知道自創建文檔以來用戶查看文檔所需的平均時間。 被審查是可選的,如果用戶發現文檔很好,則將其標記為已審查,否則將其發送給新版本。 然后為具有更新版本的 uid 制作另一條記錄。
貌似你在找Window function如果對它不熟悉,首先,閱讀如何在純 sql 中使用它來理解這個概念
我為它編寫了 ORM 查詢。 這里是:
Documents.objects.values('uid').annotate(difference = Max('reviewed_dtm')-Min('timestamp')).aggregate(Avg('difference'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.