我有一个表格,里面有很多数据。这个表是由一些脚本编写的。它的工作原理类似于“签入”,每个代理都在某个时间段内签入。它看起来像下面。
| ID|剂|地位|时间戳|
| --|--|--|--|
| 1 |汤姆|好|2023-03-16 12:27:03|
| 2 |杰夫|退化|2019 -08- 21 00:01:13|
| 100 |汤姆|好|2023-10-03 12:00:00|
| 101 |杰夫|好|2023-10-03 11:59:00|
我想为每个探员挑选最新鲜的台词。所以在上面的例子中,我想得到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)
1条答案
按热度按时间jobtbby31#
任何数据库都可以使用的东西是:
因此,如果存在具有相同的
agent
和更近的时间戳的AgentCheckin
,则我们过滤掉AgentCheckin
。