我需要为每个人最近添加记录。我有一张如下表
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中的每个人添加记录。
提前致谢
答案 0 :(得分:1)
这是关于正确的查询,但您必须按照 doc 中的说明观看 order_by 和 distinct 的联合使用:{ {3}}
Record.objects.order_by('person', '-date').distinct('person')
答案 1 :(得分:0)
在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