Django ORM从datetime开始按日期分组并进行分组聚合

问题描述 投票:0回答:1

我有一个表,我想先在其中做一个grouping by,然后将这些组聚合为一些值。所以...

表“ 统计

| owner_id | created_at | views | clicks | ... other numbers

我这样做时想要得到的东西:

    Statistic.objects.filter(
        owner_id=X
    ).annotate(
        day=Cast('created_at', DateField())
    ).values(
        'day'
    ).annotate(
        models.Avg('views')
    )

...是一个list,其数据由datecreated_at字段)转换为按DateTime分组的数据,并且具有汇总值,例如平均观看次数或点击次数等。

问题是django添加了group by "statistic"."created_at",这违反了我的要求。我试图运行原始的SQL查询,但是不幸的是,它还需要按created_at分组。

[请帮助我,解释为什么要这样做,以及如何解决我的任务?

我有一个表,我想先在其中进行分组,然后将这些组聚合为一些值。所以...表“统计” | owner_id | created_at |意见|点击次数| ...其他数字...

sql group-by django-orm
1个回答
0
投票

您可以使用TruncDate expression [Django-doc]截断到日期:

© www.soinside.com 2019 - 2024. All rights reserved.