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'))
你的建议非常有用。我将努力理解这一原则。