需要帮助使用django queryset解决复杂的sql查询吗
我需要帮助将sql查询转换为django查询集。。。 我尝试过很多事情,但没有什么能解决它 下面的查询正是我所需要的,它实际上给出了我所期望的结果。有人能帮我处理这个案子吗需要帮助使用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
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)没有实现。