Подсчет различных значений пользователя за определенный период времени с выбором последнего за этот день

Я пытался получить значение модели за определенный период времени в django. Модель используется для ведения своего рода журнала активности.

class Activity(models.Model):
    PLACE_CHOICES = (('home', 'Home'),('office', 'Office'))
    userId = models.IntegerField()
    date = models.DateField()
    place = models.CharField(max_length=25, choices=PLACE_CHOICES)

Пользователь может иметь несколько мест для одного дня ("место" может быть дублированным), но мне нужна только последняя модель для этого дня.

Мне нужно сгруппировать данные за период времени (скажем, 15 дней) для нескольких пользователей, аргументы фильтрации примерно такие,

Activity.objects.filter(userId__in=[1,2], date__gte='2022-01-01', date__lte='2022-01-15')

Это только для того, чтобы показать фильтрацию. Я пробовал другие методы, например,

Activity.objects.filter(
        userId__in=[1,2], date__gte='2022-01-01', date__lte='2022-01-15'
        ).annotate(
            home=Count('place', distinct=True, filter=Q(place='home'),
            office=Count('place', distinct=True, filter=Q(place='home')
        ).values('userId','home','office')

Мне нужны такие значения

[{userId:1, home:4, office:3},{userId:2, home:1, office:3}]
Вернуться на верх