从具有分组字段的表中选择,并使用Django ORM选择最大日期时间

时间:2014-06-17 10:03:06

标签: mysql sql django

我有一些事件记录,我存储了一些广告公司的用户观点数据。 我需要获取一个广告列表,其中查看了此列表中每个广告的用户和最后查看日期。 换句话说,如果我有三行:

id | advertisement_id | user_id | datetime   | 
1  |       1          |     1   | 03.06.2014 |
2  |       1          |     1   | 04.06.2014 |
3  |       2          |     1   | 05.06.2014 |

我需要选择第二和第三行。 我想这应该是这样的:

user_campaigns = AdvertShowEvent.objects.filter(user=user).values_list('id', flat=True).distinct().latest('datetime')

但它不起作用。 我怎么能用Django ORM来降低它?

1 个答案:

答案 0 :(得分:1)

我认为应该是这样的

AdvertShowEvent.objects.filter(user=user).values('advertisement').annotate(Max(‌​'datetime'), id=MAX('id')).values_list('id', flat=True)