我有一个包含datetime
和user_id
的日志条目表。我想通过SELECT *
FROM table a
JOIN (SELECT user_id, max(datetime) maxDate
FROM table
GROUP BY user_id) b
ON a.user_id = b.user_id AND a.datetime = b.maxDate
进行查询以获取最新的每个日志条目。我似乎无法弄清楚如何做到这一点......
查询的SQL将是这样的:
reduce-kv
现在我正在使用原始查询,但我想使用ORM的方法。
答案 0 :(得分:1)
我想这应该做
Table.objects.order_by('-user_id').distinct('user_id')
请参阅此处的distinct() - > https://docs.djangoproject.com/en/1.9/ref/models/querysets/
但是,只有当该用户的最新日志条目是该用户在表中的最后一个条目,即表中按升序排序的特定用户的日志条目时,这才有效。
答案 1 :(得分:0)
您可以尝试:
User.objects.latest().id
答案 2 :(得分:0)
Table.objects.order_by('user_id', '-datetime').distinct('user_id')
将索引添加到user_id
和datetime
(Meta.index_together = ['user_id', 'datetime']
)。