当前位置: 首页 > 面试题库 >

Django orm为每个组获取最新信息

孟鸿朗
2023-03-14
问题内容

我在Mysql中使用Django 1.6。

我有以下模型:

class Student(models.Model):
     username = models.CharField(max_length=200, unique = True)

class Score(models.Model)
     student = models.ForeignKey(Student)
     date = models.DateTimeField()
     score = models.IntegerField()

我想获取每个学生的最新分数记录。
我试过了:

Score.objects.values('student').annotate(latest_date=Max('date'))

和:

Score.objects.values('student__username').annotate(latest_date=Max('date'))

问题答案:

这应该适用于Django 1.2+和MySQL:

Score.objects.annotate(
  max_date=Max('student__score__date')
).filter(
  date=F('max_date')
)


 类似资料:
  • 问题内容: 不幸的是,SQL并不是很容易找到我。我有两个表,一个表和一个表。 贷款支付表: ID(主键),LoanID(与贷款表上的ID匹配),PaymentDate,Amount等。 我需要一条sql语句,该语句可以给我每个月输入的最后一笔付款(如果有的话)。我目前的说法没有给我结果。还存在一个问题,有时在该月的最大日期有时会有平局,因此我也必须能够处理该问题(我的想法是在平局的情况下选择最大的

  • 问题内容: 我有一些在Elasticsearch上建立索引的文档,看起来像这些样本: 我想建立一个查询,每个国家/地区只能得到一个结果,而只能得到。 因此,对于上面显示的示例,结果将类似于: 我意识到我需要进行汇总,但是我无法理解如何限制的结果。 有任何想法吗? 问题答案: 您可以使用将字段分组的聚合,每组返回1个文档,并按收集日期降序排列文档:

  • 问题内容: 怎么做? 该问题的原标题是“ 在带有子查询的复杂查询中使用等级(@Rank:= @Rank + 1)-可以吗? ”,因为我一直在寻找使用等级的解决方案,但是现在我看到Bill所发布的解决方案是好多了。 原始问题: 我正在尝试组成一个查询,该查询将从给定定义顺序的每个组中获取最后一条记录: 表达式通常用于等级,但对我来说,在2个子查询中使用时,它看起来可疑,但仅初始化一次。这样行吗? 其

  • 我正在努力处理mongo查询。我需要在单个查询中查找文档集合。集合应包含每个用户在单个查询中使用的最新日期(字段创建日期)的文档。 在斯波克有一个测试案例来演示我想要实现的目标: 我发现不同的方法是<代码>2.1.0的一部分。M1版本,因此尚未提供。 我也在尝试注释,但留档(下面的链接)没有指定如何创建像我这样的查询。 https://docs.spring.io/spring-data/data

  • 如何在Cloud Firestore中查询每个CollectionGroup的最新文档? 组中每个收藏中只有一个文档,最近的!

  • 问题内容: 这个问题已经在这里有了答案 : SQL只选择列上具有最大值的行[重复] (27个答案) 去年关闭。 假设我有一个带有列的表: 我只想从每个用户那里获取最新消息,就像您在深入实际线程之前在FaceBook收件箱中看到的那样。 此查询似乎使我接近所需的结果: 但是查询给我的是来自每个用户的最旧消息,而不是最新消息。 我不知道这一点。 问题答案: 您应该找出每个组(子查询)中的最后一个值,然