需要帮助使用django queryset解决复杂的sql查询吗

需要帮助使用django queryset解决复杂的sql查询吗,sql,django,postgresql,django-queryset,Sql,Django,Postgresql,Django Queryset,我需要帮助将sql查询转换为django查询集。。。 我尝试过很多事情,但没有什么能解决它 下面的查询正是我所需要的,它实际上给出了我所期望的结果。有人能帮我处理这个案子吗 SELECT DISTINCT on (name) * FROM my_table WHERE (name, job_result_id) = ANY( SELECT name, max(job_result_id) FROM my_table

我需要帮助将sql查询转换为django查询集。。。 我尝试过很多事情,但没有什么能解决它

下面的查询正是我所需要的,它实际上给出了我所期望的结果。有人能帮我处理这个案子吗

SELECT DISTINCT on (name) *
    FROM my_table
    WHERE (name, job_result_id) = ANY(
             SELECT name, max(job_result_id) 
             FROM my_table
             WHERE ticket != ''
             GROUP BY name, job_result_id)
一个典型的例子是:

name          result     ticket     job_result_id

aaaa          pass                  1
aaaa          fail       MCB2       2
aaaa          fail       MCB3       3
bbbb          fail       MCB25      3
cccc          pass                  4
dddd          fail       MCB6       4
我的sql返回:

name          result     ticket     job_result_id

aaaa          fail       MCB3       3
bbbb          fail       MCB25      3
dddd          fail       MCB6       4
我总是希望最后一个作业\u结果\u id或带有票证的最新不同值。 也许有人对sql查询有更好的了解。我愿意参加讨论

感谢您的帮助

您可以尝试以下方法:

YOU_MODEL.objects.filter(ticket__isnull=False).distinct('name').annotate(max_job_result_id=Max('job_result_id')).values('name', 'job_result_id', 'max_job_result_id')

您能添加您的模型吗?查询的预期结果是什么?我添加了一个示例,说明如何查看我的表以及我预期的结果是什么。谢谢您的回复。我试过了,但发现了这个错误:annotate()+distinct(fields)没有实现。