我有一个包含大量数据的表格.此表是由一些脚本编写的.它的工作方式类似于"签到",每个代理都在一段时间内签到.它看起来如下所示.
id | agent | status | timestamp |
---|---|---|---|
1 | tom | ok | 2023-03-16 12:27:03 |
2 | jeff | degraded | 2023-08-31 00:01:13 |
100 | tom | ok | 2023-10-03 12:00:00 |
101 | jeff | ok | 2023-10-03 11:59:00 |
我想 for each 代理商挑选最 fresh 的产品.所以在上面的例子中,我希望得到第100行和第101行.
我试了很多不同的方法,但还是没有得到我想要的.我用的是MySQL,所以这次不适合我. 一方面,有一种方法可以使每个代理具有不同的值,如下所示:
AgentCheckin.objects.all().values('agent').distinct()
但这只是一个特工的名字.我需要获得包含所有信息的整个查询集. 我认为这种用例应该在多个Web应用程序中很常见,但这里的情况是这样的,这与最终答案并不常见.
模型:
class AgentCheckin(models.Model):
agent = models.CharField(max_length=32)
agent_version = models.CharField(max_length=16)
status = models.CharField(max_length=16)
log = models.TextField(blank=True)
host = models.CharField(max_length=64)
timestamp = models.DateTimeField(default=timezone.now)