Raw имеет поле процесса (1/0) при добавлении process = 1 , это хорошо, но при добавлении process = 0 ; он дает мне то же значение process=1
.
Out
category | totalProcess | totalNoProcess
A | 100 | 100
Желаемый результат
category | totalProcess | totalNoProcess
A | 100 | 0
запрос в mysql:
SELECT download, SUM(CASE WHEN process = 1 THEN 1 ELSE 0 END) AS Processed, SUM(CASE WHEN process = 0 THEN 1 ELSE 0 END) AS NoPreoces FROM oer_raw where download=1;
используйте annote
, count
, case
это:
metaData = Raw.objects.values('download__category_name').annotate(
totalProcess = Count(Case(When(process=1, then=Value(1)), default=Value(0), output_field=IntegerField())),
totalNoProcess = Count(Case(When(process=0, then=Value(1)), default=Value(0), output_field=IntegerField()))
).get(download = disciplina.id)
соотношение между Download и Raw равно 1 - *
, так что FK находится в Raw с именем загрузки, поэтому я использую get
, чтобы получить сумму того, что FK, который я ищу, имеет