mysql - Django Average 和 Group By 中的 MYSQL 等效查询
问题描述
请帮助我使用 ORM 在 Django 中编写相同的查询
SELECT DATE(`created_at`) DateOnly,
AVG(`amout`) AS val_1
FROM `account`
GROUP BY DateOnly
解决方案
将datetime
转换为date
usingCast
然后聚合 using values
。ORM.values().annotate(..)
中的一个常见习语用于执行group by
操作。
from django.db.models.functions import Cast
from django.db.models import DateField
Account.objects.annotate(
DateOnly = Cast('created_at', output_field=DateField()),
).values('DateOnly').annotate(val_1 = Avg('amout'))
推荐阅读
- html - 如何在不同的屏幕尺寸上调整页脚
- react-native - 我正在尝试在本机反应中实现暗模式
- r - 错误:关于 R 中系数向量长度的内部错误
- flutter - 找不到正确的提供者
在这个 Widget 上方 - python - 我正在尝试检查字典中的值是否为整数
- r-exams - 更改“exams2moodle()”函数中问题的默认标点符号
- inno-setup - Inno Setup - 注册 32 位和 64 位
- jquery - 当屏幕宽度低于 576 像素时,为什么 jQuery 在与 bootstrap 4 和砌体插件一起使用时会抛出错误?
- react-three-fiber - 网格不更新面或顶点颜色
- angularjs - 使用 ng-select 选择选项的问题,因为 ng-model 值不同