Sql server 关于Django中的GROUP BY

Sql server 关于Django中的GROUP BY,sql-server,django,python-3.x,Sql Server,Django,Python 3.x,我有一些问题: # models.py class someinfo(models.Model): data1 = models.BigIntegerField(verbose_name='data1') data2 = models.BigIntegerField(verbose_name='data2') data_pubdate = models.DateTimeField(default=timezone.now, verbose_name='data_pubda

我有一些问题:

# models.py
class someinfo(models.Model):
    data1 = models.BigIntegerField(verbose_name='data1')
    data2 = models.BigIntegerField(verbose_name='data2')
    data_pubdate = models.DateTimeField(default=timezone.now, verbose_name='data_pubdate')
    people = models.ForeignKey(Drive, on_delete=models.CASCADE, verbose_name='people')
数据表包括:

# row data
data1    data2        data_pubdate                people
7777129  23232        2017-05-18 05:04:08.377     9   
158160   4573279      2017-05-18 05:04:08.737     8
158200   5709307      2017-05-18 05:04:08.787     6
10073    11612        2017-05-18 05:04:19.727     6
2458     5245466      2017-05-18 05:04:19.727     4
2458     5245466      2017-05-18 05:04:19.724     4
14879    9727         2017-05-18 05:04:19.897     7
...etc
我想从每个人的新数据中选择data1和data2,如下表所示:

# select data
data1    data2        data_pubdate                people
7777129  23232        2017-05-18 05:04:08.377     9   
158160   4573279      2017-05-18 05:04:08.737     8
10073    11612        2017-05-18 05:04:19.727     6
2458     5245466      2017-05-18 05:04:19.727     4   
14879    9727         2017-05-18 05:04:19.897     7
那么…我该怎么办


p.S.django版本为“1.10”,数据库为“MSSQL server 2012”

最简单的方法可能是:

SomeInfo.objects.annotate(
    last_pubdate=Max('people__someinfo__data_pubdate')
).filter(last_pubdate=F('data_pubdate'))

你的建议非常有用。我将努力理解这一原则。