gpt4 book ai didi

django - 如何一次获取多个组中的最新一个

转载 作者:行者123 更新时间:2023-12-03 07:14:05 24 4
gpt4 key购买 nike

我有一个这样的模型:

class Foo(models.Model):
date = models.DateTimeField()
language = models.TextField()
# other stuff

我想按语言对 Foo 进行分组,然后获取每组中最新的一个。我一直无法弄清楚如何使用 django 的 QuerySet API 来执行此操作(老实说,我也不知道如何在 SQL 中执行此操作)。例如:

pk | date   |    language
---+--------+------------------
1 | 1:00 | python
2 | 1:30 | python/django
3 | 1:45 | haskell
4 | 2:15 | python
5 | 2:45 | haskell

我想要得到类似于此结果的结果:

{ 'python': 4, 'python/django': 2, 'haskell': 5 }

其中可能不是数字,而是完整的 Foo 对象。

最佳答案

您可以使用原始查询来解决您的问题:

query = Foo.objects.raw('SELECT id, language, MAX(date) FROM sqltest_foo GROUP BY language;')
for foo in query:
print foo.id, foo.language

Obs:我使用的是 SQLite 语法,但其他 SQL 语言应该类似。

关于django - 如何一次获取多个组中的最新一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5400126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com