Нужна помощь для решения сложных запросов SQL с набором запросов Django - PullRequest
0 голосов
/ 21 октября 2019

Мне нужна помощь, чтобы перевести 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

My sql return:

name          result     ticket     job_result_id

aaaa          fail       MCB3       3
bbbb          fail       MCB25      3
dddd          fail       MCB6       4

Я всегда хочу последний параметр job_result_id или последнее отдельное значение с заявкой. Возможно, если у кого-то есть лучшее представление о запросе sql. Я открыт для обсуждения.

Спасибо за помощь

1 Ответ

0 голосов
/ 24 октября 2019

Вы можете попробовать это:

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')
...