Модели Django - как правильно вычислять несколько значений с различными условиями

Я хочу вычислить несколько значений в одном запросе на моей модели. для каждой метрики должен быть свой фильтр (или вообще никаких фильтров). Я использую Django==2.2.3 и модель Djongo.

Колонки моей модели:

user_id  = models.IntegerField(blank=True, null=True)
group_id = models.IntegerField(blank=True, null=True)

То, что я пытаюсь выполнить, предложенное в другой теме, у меня не работает. Запрос:

MyModel.objects.aggregate
    (
        total=Count('user_id'), 
        test=Count('user_id', filter=Q(user_id='just_a_fake_id')),
        group_1_value=Count('user_id', filter=Q(group_id=1)),
        group_2_value=Count('user_id', filter=Q(group_id=2)),     
 ) 

Результаты: {'total': 0, 'test': 47479, 'group_1_value': 47479, 'group_2_value': 47479}, не имеет смысла - все результаты (кроме total) возвращают одно и то же число, которое является подсчетом всех записей

Я хочу выполнить запрос, подобный

SELECT COUNT(user_id) as total,
       COUNT(CASE WHEN group_id=1 THEN user_id END) as group_1_value,
       COUNT(CASE WHEN group_id=2 THEN user_id END) as group_2_value
FROM MyModel

Как мне нужно изменить запрос, чтобы получить правильные значения?

Вернуться на верх