в Django после агрегирования.
если я использую filter
для столбца, который не агрегируется,
Я использую его в предложении where
SQL-запроса
, а не в having
как и ожидалось.
пример следующий:
У меня есть таблица с результатами теста.Допустим, у меня есть TestA и TestB.
Version: 2 | 2 | 2
TestA :Pass |Null |Fail
testB :Error |Fail |Null
Каждый тест можно запустить в любое время,
Я хочу отобразить последний результат для этого теста.
то, что у меня естьпробовал
x=Site.results.filter(timeEnd__isnull=False).values('idTest').annotate(Max('timeEnd'))
и затем фильтровал x, используя:
x.filter(result=<number of result>)
, но я получаю результаты, используя второй фильтр, который не виден в оригинальном x.
Как я могуполучить желаемый результат?
, но если я пытаюсь отобразить:
result(Version=2).failedFilter()
TestA=Fail
TestB=Fail
result(Version=2).PassedFilter()
TestA=Pass
result(Version=2).ErrorFilter()
TestB=Error
result(version=2)
TestA=Fail
TestB=Fail
, когда на самом деле, кроме фильтра Failed, все остальные должны быть пустыми.
резюме:
tables:
test
----
id
name
Site
----
id
name
testresult
----------
id
date
testid
siteid
result(int)
Я хочу получить последний результат для сайта с каждым тестом, а затем отфильтровать его по результату.