[英]How can I write a Django query to aggregate the most recently published entry for each author of a collective blog?
[英]how to get recently added records for each person in django query
我需要获取每个人最近添加的记录。 我有一个像下面的桌子
id person date task
1 xxx 2015-11-18 3
2 yyy 2015-11-17 2
3 yyy 2015-11-19 2
4 xxx 2015-11-30 1
我想在queryset中得到这样的输出
id person date task
3 yyy 2015-11-19 2
4 xxx 2015-11-30 1
每个人都有两个记录。 但是我需要为Django queryset中的每个人获取最近添加的记录。
提前致谢
这是关于正确的查询的信息,但您必须注意order_by的使用与文档中所述的区别 : https : //docs.djangoproject.com/en/1.8/ref/models/querysets/#django.db。 models.query.QuerySet.distinct
Record.objects.order_by('person', '-date').distinct('person')
在PostgreSQL中,您可以使用
SELECT id
,person
,dte
,task
FROM (
SELECT *
,row_number() OVER (
PARTITION BY person ORDER BY dte DESC
) rn
FROM rt
) t
WHERE rn = 1
要么
SELECT DISTINCT ON (person) id
,person
,dte
,task
FROM rt
ORDER BY person
,dte DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.